feat(auth): 内部 JwtAuthenticationFilter 增加 userType 传递
- 从 Token 解析 userType 并存入 authentication.details - 供下游 AuthUtil 获取 userType 进行权限校验
This commit is contained in:
+4
@@ -37,6 +37,7 @@ public class JwtAuthenticationFilter implements WebFilter {
|
|||||||
String username = jwtTokenProvider.getUsernameFromToken(token);
|
String username = jwtTokenProvider.getUsernameFromToken(token);
|
||||||
jwtTokenProvider.getUserIdFromToken(token);
|
jwtTokenProvider.getUserIdFromToken(token);
|
||||||
List<String> roles = jwtTokenProvider.getRolesFromToken(token);
|
List<String> roles = jwtTokenProvider.getRolesFromToken(token);
|
||||||
|
String userType = jwtTokenProvider.getUserTypeFromToken(token);
|
||||||
|
|
||||||
List<SimpleGrantedAuthority> authorities = roles.stream()
|
List<SimpleGrantedAuthority> authorities = roles.stream()
|
||||||
.map(role -> new SimpleGrantedAuthority("ROLE_" + role))
|
.map(role -> new SimpleGrantedAuthority("ROLE_" + role))
|
||||||
@@ -53,6 +54,9 @@ public class JwtAuthenticationFilter implements WebFilter {
|
|||||||
authorities
|
authorities
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 将 userType 存入 authentication details,供后续 AuthUtil 使用
|
||||||
|
authentication.setDetails(userType);
|
||||||
|
|
||||||
return chain.filter(exchange)
|
return chain.filter(exchange)
|
||||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(authentication));
|
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(authentication));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user