修复 匿名用户会被鉴定为anonymousUser

This commit is contained in:
niudehua 2021-03-09 20:08:44 +08:00
parent 61c7687473
commit 4749090fc0

View File

@ -20,13 +20,14 @@ import java.util.Set;
*/ */
public class SecurityFrameworkUtils { public class SecurityFrameworkUtils {
private SecurityFrameworkUtils() {} private SecurityFrameworkUtils() {
}
/** /**
* 从请求中获得认证 Token * 从请求中获得认证 Token
* *
* @param request 请求 * @param request 请求
* @param header 认证 Token 对应的 Header 名字 * @param header 认证 Token 对应的 Header 名字
* @return 认证 Token * @return 认证 Token
*/ */
public static String obtainAuthorization(HttpServletRequest request, String header) { public static String obtainAuthorization(HttpServletRequest request, String header) {
@ -56,7 +57,7 @@ public class SecurityFrameworkUtils {
if (authentication == null) { if (authentication == null) {
return null; return null;
} }
return (LoginUser) authentication.getPrincipal(); return authentication.getPrincipal() instanceof LoginUser ? (LoginUser) authentication.getPrincipal() : null;
} }
/** /**
@ -85,12 +86,12 @@ public class SecurityFrameworkUtils {
* 设置当前用户 * 设置当前用户
* *
* @param loginUser 登陆用户 * @param loginUser 登陆用户
* @param request 请求 * @param request 请求
*/ */
public static void setLoginUser(LoginUser loginUser, HttpServletRequest request) { public static void setLoginUser(LoginUser loginUser, HttpServletRequest request) {
// 创建 UsernamePasswordAuthenticationToken 对象 // 创建 UsernamePasswordAuthenticationToken 对象
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken( UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(
loginUser, null, null); loginUser, null, null);
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
// 设置到上下文 // 设置到上下文
SecurityContextHolder.getContext().setAuthentication(authenticationToken); SecurityContextHolder.getContext().setAuthentication(authenticationToken);