Browse Source

Merge branch 'dev' into pre-production

pre-production
pref_mail@163.com 4 months ago
parent
commit
d85277c21d
  1. 6
      blade-auth/src/main/java/org/springblade/auth/endpoint/BladeTokenEndPoint.java
  2. 2
      blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java
  3. 30
      blade-auth/src/main/java/org/springblade/auth/support/BladeJwtTokenEnhancer.java

6
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<Map<String,Object>> 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");
}

2
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"));

30
blade-auth/src/main/java/org/springblade/auth/support/BladeJwtTokenEnhancer.java

@ -56,20 +56,35 @@ public class BladeJwtTokenEnhancer implements TokenEnhancer {
//token参数增强
Map<String, Object> 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());
}
}
}

Loading…
Cancel
Save