gateway的授权思考

gateway的授权思考

1、看了一下若依的cloud项目。

登录:是传将authoration 这个token和当前用户绑定,然后放在redis.在登录的时候,也将相关的信息,比如校验了一下。不通过就不通过。

复制代码
@Override
public OAuth2ClientDO validOAuthClientFromCache(String clientId, String clientSecret, String authorizedGrantType,
                                                Collection<String> scopes, String redirectUri) {
    // 校验客户端存在、且开启
    OAuth2ClientDO client = getSelf().getOAuth2ClientFromCache(clientId);
    if (client == null) {
        throw exception(OAUTH2_CLIENT_NOT_EXISTS);
    }
    if (CommonStatusEnum.isDisable(client.getStatus())) {
        throw exception(OAUTH2_CLIENT_DISABLE);
    }

    // 校验客户端密钥
    if (StrUtil.isNotEmpty(clientSecret) && ObjectUtil.notEqual(client.getSecret(), clientSecret)) {
        throw exception(OAUTH2_CLIENT_CLIENT_SECRET_ERROR);
    }
    // 校验授权方式
    if (StrUtil.isNotEmpty(authorizedGrantType) && !CollUtil.contains(client.getAuthorizedGrantTypes(), authorizedGrantType)) {
        throw exception(OAUTH2_CLIENT_AUTHORIZED_GRANT_TYPE_NOT_EXISTS);
    }
    // 校验授权范围
    if (CollUtil.isNotEmpty(scopes) && !CollUtil.containsAll(client.getScopes(), scopes)) {
        throw exception(OAUTH2_CLIENT_SCOPE_OVER);
    }
    // 校验回调地址
    if (StrUtil.isNotEmpty(redirectUri) && !StrUtils.startWithAny(redirectUri, client.getRedirectUris())) {
        throw exception(OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH, redirectUri);
    }
    return client;
}

鉴权:gateway是处理,check从oauth通过rpc接口鉴权,然后获取userId,或者其他的需要的重要信息放入header上作为业务的传递。

业务:业务系统,不需要做任何鉴权,只需要做业务操作,其他的userId信息可以用userHolder类处理。

相关推荐
暗夜猎手-大魔王2 天前
转载--Hermes Agent 13 | Gateway 架构:二十余渠道如何复用同一套 Agent Runtime
人工智能·gateway
YJlio3 天前
OpenClaw 2026.5.2 Beta 更新解读:外部插件安装、ClawHub / npm 切换与 Gateway 性能优化
性能优化·npm·gateway·飞书·多维表格·飞书aily·飞书妙搭
v***59833 天前
SpringCloud实战十三:Gateway之 Spring Cloud Gateway 动态路由
java·spring cloud·gateway
团子的二进制世界3 天前
Gateway :微服务架构的核心网关
微服务·架构·gateway
MrMonkeyHou3 天前
Java微服务架构中的双剑合璧:Nacos与Gateway深度解析
java·微服务·架构·gateway
RR13353 天前
Spring MVC and Spring Gateway 的差异,以及报错处理
spring·gateway·mvc
普通网友3 天前
【python】pyspark.errors.exceptions.base.PySparkRuntimeError [JAVA_GATEWAY_EXITED] Java gateway proce
java·python·gateway
YJlio3 天前
OpenClaw v2026.5.26-beta.1 / beta.2 预发布解读:Gateway 加速、transcript 路径统一、多通道修复、语音增强与安装更新链路加固
人工智能·windows·python·ui·缓存·gateway·outlook
普通网友3 天前
AWS VPC Transit Gateway 部署:实现多 VPC(开发 / 测试 / 生产)间流量集中管控
云计算·gateway·aws
青莲网络4 天前
安全第一与合规治理:魔芋 AI 正式发布企业级大模型网关 Mai Gateway
人工智能·安全·gateway