@@ -132,19 +132,15 @@ private boolean refreshToken(ServletRequest request, ServletResponse response) {
132132 if (JedisUtil .exists (Constant .PREFIX_SHIRO_REFRESH_TOKEN + account )){
133133 // Redis中RefreshToken还存在,获取RefreshToken的时间戳
134134 String currentTimeMillisRedis = JedisUtil .getObject (Constant .PREFIX_SHIRO_REFRESH_TOKEN + account ).toString ();
135- // 获取当前AccessToken中的时间戳,与RefreshToken的时间戳对比
135+ // 获取当前AccessToken中的时间戳,与RefreshToken的时间戳对比,如果当前时间戳一致,进行AccessToken刷新
136136 if (JwtUtil .getClaim (token , Constant .CURRENT_TIME_MILLIS ).equals (currentTimeMillisRedis )){
137- // 通过说明该AccessToken时间戳与RefreshToken时间戳一致,进行AccessToken刷新
138137 // 获取当前最新时间戳
139138 String currentTimeMillis = String .valueOf (System .currentTimeMillis ());
140- // 获取RefreshToken剩余过期时间
141- Long refreshTokenExpireTimeRedis = JedisUtil .getExpireTime (Constant .PREFIX_SHIRO_REFRESH_TOKEN + account );
142- // 读取配置文件,获取一个AccessToken的过期时间
139+ // 读取配置文件,获取refreshTokenExpireTime属性
143140 PropertiesUtil .readProperties ("config.properties" );
144- String accessTokenExpireTime = PropertiesUtil .getProperty ("accessTokenExpireTime" );
145- // 设置RefreshToken中的时间戳为当前最新时间戳,且过期时间为RefreshToken剩余过期时间加上一个新的AccessToken过期时间
146- JedisUtil .setObject (Constant .PREFIX_SHIRO_REFRESH_TOKEN + account , currentTimeMillis ,
147- refreshTokenExpireTimeRedis .intValue () + Integer .parseInt (accessTokenExpireTime ));
141+ String refreshTokenExpireTime = PropertiesUtil .getProperty ("refreshTokenExpireTime" );
142+ // 设置RefreshToken中的时间戳为当前最新时间戳,且刷新过期时间重新为30分钟过期(配置文件可配置refreshTokenExpireTime属性)
143+ JedisUtil .setObject (Constant .PREFIX_SHIRO_REFRESH_TOKEN + account , currentTimeMillis , Integer .parseInt (refreshTokenExpireTime ));
148144 // 刷新AccessToken,设置时间戳为当前最新时间戳
149145 token = JwtUtil .sign (account , currentTimeMillis );
150146 // 将新刷新的AccessToken再次进行Shiro的登录
0 commit comments