From ef299388e071ce75de6623009f21e425b5a3b017 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Mon, 29 Jul 2024 17:46:29 +0800
Subject: [PATCH] 1
---
websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java | 31 ++++++++++++++++++++++++++++---
1 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java b/websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java
index e69c348..95bf67f 100644
--- a/websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java
+++ b/websocketSerivce/src/main/java/org/example/util/LoginInterceptor.java
@@ -1,5 +1,12 @@
package org.example.util;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.example.pojo.User;
+import org.example.server.UserService;
+import org.example.server.impl.UserServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
@@ -12,21 +19,39 @@
* @description:
* @create: 2024-07-29 11:15
**/
+@Component
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
- HttpSession session = request.getSession();
-
// 假设登录状态信息保存在 session 中,这里简单示例,实际项目中可能会有自己的登录状态判断逻辑
- if (session.getAttribute("loggedInUser") != null) {
+ String token = request.getHeader("token");
+ if(null == token){
+ // 未登录,返回未授权错误码或重定向到登录页
+ response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); // 返回 401 未授权状态码
+ response.setCharacterEncoding("UTF-8");
+ response.getWriter().write("请登录");
+ return false;
+ }
+ User user = JwtUtil.verify(token);
+ if(null == user){
+ // 未登录,返回未授权错误码或重定向到登录页
+ response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); // 返回 401 未授权状态码
+ response.setCharacterEncoding("UTF-8");
+ response.getWriter().write("请登录");
+ return false;
+ }
+
+ if (user.getIsRoot() == 1) {
// 已登录,允许请求继续
return true;
} else {
// 未登录,返回未授权错误码或重定向到登录页
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); // 返回 401 未授权状态码
+ response.setCharacterEncoding("UTF-8");
+ response.getWriter().write("请登录");
return false;
}
}
--
Gitblit v1.9.3