我们再配置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秒
启动项目后,请求
未完待续。。。。。。。。。。。。。。。。。。。。