Oauth2设置令牌过期时间accessTokenValiditySeconds,在代码中怎么判断是否过期

论坛 期权论坛 脚本     
已经匿名di用户   2022-3-21 23:41   2052   0

我们再配置ouath2的时候都会配置资源认证的服务器

其中在配置授权服务器断点时会配置令牌的存储:tokenStore(tokenStore) ,这个令牌存储中会存令牌的过期时间,cliend_id,name等信息,一般默认使用InMemoryTokenStore()存储。我们可以在AuthorizationServerEndpointsConfigurer类中查看区别判断token的存储代码逻辑

有了上面的前提后,我们直接在AuthorizationServerEndpointsConfigurer类中定位TokenStore

我们可以看到其中逻辑当你不配置tokenStore时也就是等于null时,会先判断令牌转换器accessTokenConverter()类型 ,这里我只讲 InMemoryTokenStore

private final DelayQueue<TokenExpiry> expiryQueue = new DelayQueue<TokenExpiry>();

private final ConcurrentHashMap<String, TokenExpiry> expiryMap = new ConcurrentHashMap<String, TokenExpiry>();

这是定时队列

当你设置有效时间时会走这里

其中的TokenEXpiry类中就有对时间的操作

队列也会执行flush操作,轮询之后移除队列信息。当队列信息为空时,就失效token

如果是JwtTokenStore存储的话可以直接进入该类中,当前这个类中并没有操作时间的,我们可以看到它有两个属性,我们先进入第一个属性进入该类

进入该类后,搜索expir(过期时间)可以看到下面的代码,打上断点

我们之前是设置的过期时间是100秒

启动项目后,请求

未完待续。。。。。。。。。。。。。。。。。。。。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP