增加了当前角色
This commit is contained in:
@ -1,5 +1,4 @@
|
|||||||
seata.enabled=true
|
seata.enabled=true
|
||||||
seata.application-id=${spring.application.name}
|
seata.application-id=${spring.application.name}
|
||||||
seata.tx-service-group=${spring.application.name}-service-group
|
seata.tx-service-group=${spring.application.name}-service-group
|
||||||
seata.service.vgroup-mapping.eshop-service-group=default
|
|
||||||
seata.service.grouplist.default=10.242.31.158:18035
|
seata.service.grouplist.default=10.242.31.158:18035
|
||||||
|
@ -7,5 +7,6 @@ public interface Constants {
|
|||||||
|
|
||||||
public static final String AUTHORIZATION_HEADER = "Authorization";
|
public static final String AUTHORIZATION_HEADER = "Authorization";
|
||||||
public static final String TOKEN_PREFIX = "Bearer ";
|
public static final String TOKEN_PREFIX = "Bearer ";
|
||||||
|
public static final String CURRENT_ROLE_CODE = "currentRoleCode";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -144,6 +144,11 @@ public class SecurityUser {
|
|||||||
*/
|
*/
|
||||||
private Integer positionId;
|
private Integer positionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前用户角色
|
||||||
|
*/
|
||||||
|
private String currentRoleCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户角色列表
|
* 用户角色列表
|
||||||
*/
|
*/
|
||||||
|
@ -52,14 +52,15 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
|
|||||||
|
|
||||||
// 提取request头信息
|
// 提取request头信息
|
||||||
final String header = request.getHeader(Constants.AUTHORIZATION_HEADER);
|
final String header = request.getHeader(Constants.AUTHORIZATION_HEADER);
|
||||||
|
final String currentRoleCode = request.getHeader(Constants.CURRENT_ROLE_CODE);
|
||||||
|
|
||||||
// 检查请求头是否包含 Bearer 前缀
|
// 检查请求头是否包含 Bearer 前缀
|
||||||
if (StringUtils.startsWith(header, Constants.TOKEN_PREFIX)) {
|
if (StringUtils.startsWith(header, Constants.TOKEN_PREFIX)) {
|
||||||
// 移除header的前缀,提取出token字串
|
// 移除header的前缀,提取出token字串
|
||||||
String authToken = RegExUtils.replaceAll(header, Constants.TOKEN_PREFIX, "");
|
String authToken = RegExUtils.replaceAll(header, Constants.TOKEN_PREFIX, "");
|
||||||
|
|
||||||
try {// 通过token读取用户信息
|
try {// 通过token读取用户信息 (新增用户当前角色字段: 2021-03-05)
|
||||||
SecurityContextHolder.getContext().setAuthentication(getAuthentication(authToken));
|
SecurityContextHolder.getContext().setAuthentication(getAuthentication(authToken, currentRoleCode));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
@ -73,7 +74,7 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
|
|||||||
* @param token
|
* @param token
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Authentication getAuthentication(String token) {
|
private Authentication getAuthentication(final String token, final String currentRoleCode) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
// 设置安全头
|
// 设置安全头
|
||||||
headers.add(HttpHeaders.AUTHORIZATION, String.format("Bearer %s", token));
|
headers.add(HttpHeaders.AUTHORIZATION, String.format("Bearer %s", token));
|
||||||
@ -81,7 +82,7 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
|
|||||||
ResponseEntity<SecurityUser> entity = restTemplate.exchange(token_uri, HttpMethod.GET,
|
ResponseEntity<SecurityUser> entity = restTemplate.exchange(token_uri, HttpMethod.GET,
|
||||||
new HttpEntity<String>(headers), SecurityUser.class);
|
new HttpEntity<String>(headers), SecurityUser.class);
|
||||||
|
|
||||||
return new UsernamePasswordAuthenticationToken(entity.getBody(), token);
|
return new UsernamePasswordAuthenticationToken(entity.getBody().setCurrentRoleCode(currentRoleCode), token);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -146,6 +146,11 @@ public class BaseCacheUser {
|
|||||||
*/
|
*/
|
||||||
private Integer positionId;
|
private Integer positionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前用户角色
|
||||||
|
*/
|
||||||
|
private String currentRoleCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户角色列表
|
* 用户角色列表
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user