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 天前
OpenClaw 深度解析与源代码导读 · 第3篇:Gateway——常驻控制面、单端口多协议与进程骨架
人工智能·深度学习·语言模型·gateway
w6100104664 天前
Cka-2026-gateway解释
gateway·k8s·cka
岳来4 天前
网络小白docker network create时如何指定subnet 和gateway
网络·docker·gateway·subnet
如来神掌十八式5 天前
nginx + spring gateway+spring 服务_nginx 转发到 gateway
nginx·spring·gateway
晏宁科技YaningAI6 天前
分布式通信系统的容错机制
网络协议·微服务·系统架构·gateway·信息与通信·paas
爱淋雨的男人7 天前
网关gateway详解
gateway
不吃鱼的猫7487 天前
Janus WebRTC Gateway -- 从零搭建完整指南
gateway·webrtc
zhojiew8 天前
关于AWS Direct Connect with Transit Gateway和Direct Connect Gateway
云计算·gateway·aws
亚马逊云开发者8 天前
GameLift Servers DDoS防护实战:Player Gateway + Ping Beacons延迟优化 + C++ SDK集成
c++·gateway·ddos
戮戮8 天前
Spring Cloud Gateway 零拷贝参数校验:一种高性能网关架构实践
java·网络·架构·gateway