diff --git a/blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java b/blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java index 67cb1cc4..56f00f08 100644 --- a/blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java +++ b/blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java @@ -45,6 +45,8 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpSession; import java.time.Duration; +import java.util.List; +import java.util.Map; import static org.springblade.core.cache.constant.CacheConstant.*; @@ -124,6 +126,9 @@ public class BladeTokenEndPoint { // 清空资源服务器保存的token OAuth2AccessToken accessToken = tokenStore.readAccessToken(token); OAuth2RefreshToken refreshToken = null; + String string = CacheNames.tenantKeyObj(user.getTenantId(), "logpm:user:warehouse:own:", user.getUserId()); +// List> o = bladeRedis.get(string); + bladeRedis.del(CacheNames.tenantKeyObj(user.getTenantId(),"logpm:user:warehouse:own:", user.getUserId())); if (accessToken != null && StringUtil.isNoneBlank(accessToken.getValue())) { refreshToken = accessToken.getRefreshToken(); tokenStore.removeAccessToken(accessToken); @@ -131,6 +136,7 @@ public class BladeTokenEndPoint { if (refreshToken != null && StringUtil.isNoneBlank(refreshToken.getValue())) { tokenStore.removeRefreshToken(refreshToken); } + return Kv.create().set("success", "true").set("msg", "success"); } diff --git a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java index da74101c..65467074 100644 --- a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java +++ b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java @@ -241,8 +241,10 @@ public class BladeUserDetailsServiceImpl implements UserDetailsService { private boolean judgeRefreshToken(String grantType, HttpServletRequest request) { if (jwtProperties.getState() && jwtProperties.getSingle() && StringUtil.equals(grantType, TokenUtil.REFRESH_TOKEN_KEY)) { String refreshToken = request.getParameter(TokenUtil.REFRESH_TOKEN_KEY); + log.info("judgeRefreshToken refreshToken={}",refreshToken); if(refreshToken != null){ Claims claims = JwtUtil.parseJWT(refreshToken); + log.info("judgeRefreshToken claims={}",claims); if(claims!=null){ String tenantId = String.valueOf(claims.get("tenant_id")); String clientId = String.valueOf(claims.get("client_id")); diff --git a/blade-auth/src/main/java/org/springblade/auth/support/BladeJwtTokenEnhancer.java b/blade-auth/src/main/java/org/springblade/auth/support/BladeJwtTokenEnhancer.java index f7321d75..53facd93 100644 --- a/blade-auth/src/main/java/org/springblade/auth/support/BladeJwtTokenEnhancer.java +++ b/blade-auth/src/main/java/org/springblade/auth/support/BladeJwtTokenEnhancer.java @@ -56,20 +56,35 @@ public class BladeJwtTokenEnhancer implements TokenEnhancer { //token参数增强 Map info = new HashMap<>(16); info.put(TokenUtil.CLIENT_ID, clientId); +// System.out.println(">> 页面出现掉线情况 debug clientId = "+clientId); info.put(TokenUtil.USER_ID, Func.toStr(principal.getUserId())); +// System.out.println(">> 页面出现掉线情况 debug USER_ID = "+Func.toStr(principal.getUserId())); info.put(TokenUtil.DEPT_ID, Func.toStr(principal.getDeptId())); +// System.out.println(">> 页面出现掉线情况 debug DEPT_ID = "+Func.toStr(principal.getDeptId())); info.put(TokenUtil.POST_ID, Func.toStr(principal.getPostId())); +// System.out.println(">> 页面出现掉线情况 debug POST_ID = "+Func.toStr(principal.getPostId())); info.put(TokenUtil.ROLE_ID, Func.toStr(principal.getRoleId())); +// System.out.println(">> 页面出现掉线情况 debug ROLE_ID = "+Func.toStr(principal.getRoleId())); info.put(TokenUtil.TENANT_ID, principal.getTenantId()); +// System.out.println(">> 页面出现掉线情况 debug TENANT_ID = "+principal.getTenantId()); info.put(TokenUtil.OAUTH_ID, principal.getOauthId()); +// System.out.println(">> 页面出现掉线情况 debug OAUTH_ID = "+principal.getOauthId()); info.put(TokenUtil.ACCOUNT, principal.getAccount()); +// System.out.println(">> 页面出现掉线情况 debug ACCOUNT = "+principal.getAccount()); info.put(TokenUtil.USER_NAME, principal.getUsername()); +// System.out.println(">> 页面出现掉线情况 debug USER_NAME = "+principal.getUsername()); info.put(TokenUtil.NICK_NAME, principal.getName()); +// System.out.println(">> 页面出现掉线情况 debug NICK_NAME = "+principal.getName()); info.put(TokenUtil.REAL_NAME, principal.getRealName()); +// System.out.println(">> 页面出现掉线情况 debug REAL_NAME = "+principal.getRealName()); info.put(TokenUtil.ROLE_NAME, principal.getRoleName()); +// System.out.println(">> 页面出现掉线情况 debug ROLE_NAME = "+principal.getRoleName()); info.put(TokenUtil.AVATAR, principal.getAvatar()); info.put(TokenUtil.DETAIL, principal.getDetail()); +// System.out.println(">> 页面出现掉线情况 debug DETAIL = "+principal.getDetail()); info.put(TokenUtil.LICENSE, TokenUtil.LICENSE_NAME); + info.put(TokenUtil.LICENSE_NAME, TokenUtil.LICENSE_NAME); + ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(info); //token状态设置 @@ -82,9 +97,24 @@ public class BladeJwtTokenEnhancer implements TokenEnhancer { if (jwtProperties.getSingle()) { OAuth2RefreshToken oAuth2RefreshToken = oAuth2AccessToken.getRefreshToken(); + System.err.println(">> 页面出现掉线情况 oAuth2RefreshToken = "+oAuth2RefreshToken); if(oAuth2RefreshToken!=null){ String refreshTokenValue = oAuth2RefreshToken.getValue(); JwtUtil.addRefreshToken(tenantId, clientId, userId, refreshTokenValue, accessToken.getExpiresIn() * 168); + }else{ + System.out.println(">> 页面出现掉线情况 debug clientId = "+clientId); + System.out.println(">> 页面出现掉线情况 debug USER_ID = "+Func.toStr(principal.getUserId())); + System.out.println(">> 页面出现掉线情况 debug DEPT_ID = "+Func.toStr(principal.getDeptId())); + System.out.println(">> 页面出现掉线情况 debug POST_ID = "+Func.toStr(principal.getPostId())); + System.out.println(">> 页面出现掉线情况 debug ROLE_ID = "+Func.toStr(principal.getRoleId())); + System.out.println(">> 页面出现掉线情况 debug TENANT_ID = "+principal.getTenantId()); + System.out.println(">> 页面出现掉线情况 debug OAUTH_ID = "+principal.getOauthId()); + System.out.println(">> 页面出现掉线情况 debug ACCOUNT = "+principal.getAccount()); + System.out.println(">> 页面出现掉线情况 debug USER_NAME = "+principal.getUsername()); + System.out.println(">> 页面出现掉线情况 debug NICK_NAME = "+principal.getName()); + System.out.println(">> 页面出现掉线情况 debug REAL_NAME = "+principal.getRealName()); + System.out.println(">> 页面出现掉线情况 debug ROLE_NAME = "+principal.getRoleName()); + System.out.println(">> 页面出现掉线情况 debug DETAIL = "+principal.getDetail()); } } }