对话逻辑修复
This commit is contained in:
@@ -52,9 +52,11 @@ public class AuthInterceptor implements HandlerInterceptor {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 将用户ID存储到请求属性中,供后续使用
|
||||
// 将用户信息存储到请求属性中,供后续使用
|
||||
String userId = authService.getUserIdFromToken(token);
|
||||
String username = authService.getUsernameFromToken(token);
|
||||
request.setAttribute("userId", userId);
|
||||
request.setAttribute("username", username);
|
||||
request.setAttribute("token", token);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -71,58 +71,70 @@ public class UserContextInterceptor implements HandlerInterceptor {
|
||||
|
||||
/**
|
||||
* 从请求中获取用户ID
|
||||
*
|
||||
*
|
||||
* @param request HTTP请求
|
||||
* @return 用户ID
|
||||
*/
|
||||
private String getUserIdFromRequest(HttpServletRequest request) {
|
||||
// 1. 从请求头获取
|
||||
// 1. 优先从请求属性获取(AuthInterceptor设置的)
|
||||
Object userIdAttr = request.getAttribute("userId");
|
||||
if (userIdAttr != null && StringUtils.hasText(userIdAttr.toString())) {
|
||||
return userIdAttr.toString();
|
||||
}
|
||||
|
||||
// 2. 从请求头获取
|
||||
String userId = request.getHeader("X-User-Id");
|
||||
if (StringUtils.hasText(userId)) {
|
||||
return userId;
|
||||
}
|
||||
|
||||
// 2. 从请求参数获取
|
||||
|
||||
// 3. 从请求参数获取
|
||||
userId = request.getParameter("userId");
|
||||
if (StringUtils.hasText(userId)) {
|
||||
return userId;
|
||||
}
|
||||
|
||||
// 3. 从Session获取
|
||||
|
||||
// 4. 从Session获取
|
||||
Object sessionUserId = request.getSession().getAttribute("userId");
|
||||
if (sessionUserId != null) {
|
||||
return sessionUserId.toString();
|
||||
}
|
||||
|
||||
// 4. 生成访客ID
|
||||
|
||||
// 5. 生成访客ID
|
||||
return "guest_" + System.currentTimeMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* 从请求中获取用户名
|
||||
*
|
||||
*
|
||||
* @param request HTTP请求
|
||||
* @return 用户名
|
||||
*/
|
||||
private String getUsernameFromRequest(HttpServletRequest request) {
|
||||
// 1. 从请求头获取
|
||||
// 1. 优先从请求属性获取(AuthInterceptor设置的)
|
||||
Object usernameAttr = request.getAttribute("username");
|
||||
if (usernameAttr != null && StringUtils.hasText(usernameAttr.toString())) {
|
||||
return usernameAttr.toString();
|
||||
}
|
||||
|
||||
// 2. 从请求头获取
|
||||
String username = request.getHeader("X-Username");
|
||||
if (StringUtils.hasText(username)) {
|
||||
return username;
|
||||
}
|
||||
|
||||
// 2. 从请求参数获取
|
||||
|
||||
// 3. 从请求参数获取
|
||||
username = request.getParameter("username");
|
||||
if (StringUtils.hasText(username)) {
|
||||
return username;
|
||||
}
|
||||
|
||||
// 3. 从Session获取
|
||||
|
||||
// 4. 从Session获取
|
||||
Object sessionUsername = request.getSession().getAttribute("username");
|
||||
if (sessionUsername != null) {
|
||||
return sessionUsername.toString();
|
||||
}
|
||||
|
||||
|
||||
return "guest";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user