feat(): 新增鉴权Saas标识校验

master
xinzirun 2024-09-22 10:08:22 +08:00
parent 7c49fee992
commit b5757fdead
4 changed files with 19 additions and 1 deletions

View File

@ -45,4 +45,9 @@ public class SecurityConstants {
* *
*/ */
public static final String ROLE_PERMISSION = "role_permission"; public static final String ROLE_PERMISSION = "role_permission";
/**
* SaaS
*/
public static final String SAAS_KEY = "ent-code";
} }

View File

@ -162,4 +162,13 @@ public class JwtUtils {
public static String getValue (Claims claims, String key) { public static String getValue (Claims claims, String key) {
return Convert.toStr(claims.get(key), ""); return Convert.toStr(claims.get(key), "");
} }
/**
* SaaS
* @param claims
* @return Saas
*/
public static String getSaaSKey (Claims claims) {
return getValue(claims, SecurityConstants.SAAS_KEY);
}
} }

View File

@ -55,6 +55,7 @@ public class TokenService {
claimsMap.put(SecurityConstants.USER_KEY, token); claimsMap.put(SecurityConstants.USER_KEY, token);
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId); claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName); claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
claimsMap.put(SecurityConstants.SAAS_KEY, loginUser.getSysUser().getDatabaseName());
// 接口返回信息 // 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>(); Map<String, Object> rspMap = new HashMap<String, Object>();

View File

@ -63,7 +63,8 @@ public class AuthFilter implements GlobalFilter, Ordered {
} }
String userid = JwtUtils.getUserId(claims); String userid = JwtUtils.getUserId(claims);
String username = JwtUtils.getUserName(claims); String username = JwtUtils.getUserName(claims);
if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { String saaSKey = JwtUtils.getSaaSKey(claims);
if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username) || StringUtils.isEmpty(saaSKey)) {
return unauthorizedResponse(exchange, "令牌验证失败"); return unauthorizedResponse(exchange, "令牌验证失败");
} }
@ -71,6 +72,8 @@ public class AuthFilter implements GlobalFilter, Ordered {
addHeader(mutate, SecurityConstants.USER_KEY, userkey); addHeader(mutate, SecurityConstants.USER_KEY, userkey);
addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username); addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
addHeader(mutate, SecurityConstants.SAAS_KEY, saaSKey);
// 内部请求来源参数清除 // 内部请求来源参数清除
removeHeader(mutate, SecurityConstants.FROM_SOURCE); removeHeader(mutate, SecurityConstants.FROM_SOURCE);
return chain.filter(exchange.mutate().request(mutate.build()).build()); return chain.filter(exchange.mutate().request(mutate.build()).build());