SpringTool.getUserName()方法中获取requestAttributes可能为null, 增加为null判断

This commit is contained in:
xuguang
2021-12-27 16:35:22 +08:00
parent 4115975320
commit 4f317b76fa

View File

@@ -13,6 +13,7 @@ import org.springframework.context.ApplicationEvent;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
@@ -81,16 +82,19 @@ public class SpringTool implements ApplicationContextAware, DisposableBean {
} }
public static String getUserName(){ public static String getUserName(){
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String username = null; String username = null;
if (TrickLoginConstant.TRICK_LOGIN_SWITCH_ON.equals(request.getHeader(TrickLoginConstant.TRICK_LOGIN_SWITCH))) { RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
// trick登录方式的获取用户 if (!ValidateUtils.isNull(requestAttributes)) {
username = request.getHeader(TrickLoginConstant.TRICK_LOGIN_USER); HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
} else {
// 走页面登录方式登录的获取用户 if (TrickLoginConstant.TRICK_LOGIN_SWITCH_ON.equals(request.getHeader(TrickLoginConstant.TRICK_LOGIN_SWITCH))) {
HttpSession session = request.getSession(); // trick登录方式的获取用户
username = (String) session.getAttribute(LoginConstant.SESSION_USERNAME_KEY); username = request.getHeader(TrickLoginConstant.TRICK_LOGIN_USER);
} else {
// 走页面登录方式登录的获取用户
HttpSession session = request.getSession();
username = (String) session.getAttribute(LoginConstant.SESSION_USERNAME_KEY);
}
} }
if (ValidateUtils.isNull(username)) { if (ValidateUtils.isNull(username)) {