(五)SpringCloud+Security+Oauth2--自定义ResourceServerTokenServices优化oauth2性能

一 性能瓶颈

通过前面的分析我们知道了oath2在对token进行校验的时候会向客户端端发送一次token校验的请求,这样一来会造成认证中心的负载压力过大,成为造成整个系统瓶颈的关键点
在这里插入图片描述
在这里插入图片描述
我们可以自定义一个ResourceServerTokenServices直接从tokenstore中去获得Authcation
加载到安全上下文即可

二 自定义ResourceServerTokenServices

@RequiredArgsConstructor
@Component
@Primary
public class LocalResourceTokenServices implements ResourceServerTokenServices {
    private final TokenStore tokenStore;

    @Override
    public OAuth2Authentication loadAuthentication(String accessToken) throws AuthenticationException, InvalidTokenException {
        OAuth2Authentication oAuth2Authentication = tokenStore.readAuthentication(accessToken);
        if (Objects.isNull(oAuth2Authentication)){
            return null;
        }
        oAuth2Authentication.setAuthenticated(true);
        return oAuth2Authentication;
    }

    @Override
    public OAuth2AccessToken readAccessToken(String accessToken) {
        throw new UnsupportedOperationException("Not supported: read access token");
    }
}

注意要加上@Primary保证在token校验时强制使用该实现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值