|
@@ -81,12 +81,10 @@ public class JwtInterceptor implements HandlerInterceptor {
|
|
|
token = request.getParameter("token");
|
|
token = request.getParameter("token");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (!StringUtils.hasText(token)) {
|
|
|
|
|
- log.warn("请求 {} 缺少Token", request.getRequestURI());
|
|
|
|
|
- response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
|
|
- response.setContentType("application/json; charset=utf-8");
|
|
|
|
|
- response.getWriter().write("{\"code\":401,\"message\":\"请先登录\"}");
|
|
|
|
|
- return false;
|
|
|
|
|
|
|
+if (!StringUtils.hasText(token)) {
|
|
|
|
|
+ log.debug("请求 {} 无Token,设为匿名用户", request.getRequestURI());
|
|
|
|
|
+ setAnonymousUser(request);
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 去掉Bearer前缀
|
|
// 去掉Bearer前缀
|
|
@@ -112,7 +110,7 @@ public class JwtInterceptor implements HandlerInterceptor {
|
|
|
request.setAttribute("role", role);
|
|
request.setAttribute("role", role);
|
|
|
request.setAttribute("roles", roles);
|
|
request.setAttribute("roles", roles);
|
|
|
|
|
|
|
|
- // 设置familyId(查询用户所属家庭)
|
|
|
|
|
|
|
+// 设置familyId(查询用户所属家庭)
|
|
|
try {
|
|
try {
|
|
|
User user = userMapper.selectById(userId);
|
|
User user = userMapper.selectById(userId);
|
|
|
if (user != null && user.getFamilyId() != null) {
|
|
if (user != null && user.getFamilyId() != null) {
|
|
@@ -124,11 +122,15 @@ public class JwtInterceptor implements HandlerInterceptor {
|
|
|
|
|
|
|
|
return true;
|
|
return true;
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
- log.warn("Token解析失败: {}", e.getMessage());
|
|
|
|
|
- response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
|
|
- response.setContentType("application/json; charset=utf-8");
|
|
|
|
|
- response.getWriter().write("{\"code\":401,\"message\":\"登录已过期,请重新登录\"}");
|
|
|
|
|
- return false;
|
|
|
|
|
|
|
+ log.warn("Token解析失败: {}, 设为匿名用户", e.getMessage());
|
|
|
|
|
+ setAnonymousUser(request);
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+
|
|
|
|
|
+ private void setAnonymousUser(HttpServletRequest request) {
|
|
|
|
|
+ request.setAttribute("userId", -1L);
|
|
|
|
|
+ request.setAttribute("role", "anonymous");
|
|
|
|
|
+ request.setAttribute("roles", Collections.singletonList("anonymous"));
|
|
|
|
|
+ }
|
|
|
|
|
+}
|