From 8b8c5815cc303cf3281f2749fcfd47131c15f595 Mon Sep 17 00:00:00 2001 From: Hao Miao <47212914+PushM@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:41:44 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuration/auth/Application.java | 22 +++++++++++++ .../configuration/auth/LoginInterceptor.java | 31 +++++++++++++++++++ .../server/user/login/LoginController.java | 14 ++++++--- 3 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/realtime/protection/configuration/auth/Application.java create mode 100644 src/main/java/com/realtime/protection/configuration/auth/LoginInterceptor.java diff --git a/src/main/java/com/realtime/protection/configuration/auth/Application.java b/src/main/java/com/realtime/protection/configuration/auth/Application.java new file mode 100644 index 0000000..6a06678 --- /dev/null +++ b/src/main/java/com/realtime/protection/configuration/auth/Application.java @@ -0,0 +1,22 @@ +package com.realtime.protection.configuration.auth; + +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.web.servlet.config.annotation.InterceptorRegistration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * @author Yixiang Zhao (@seriouszyx) + **/ +@SpringBootApplication +@EnableCaching +public class Application implements WebMvcConfigurer { + @Override + public void addInterceptors(InterceptorRegistry registry) { + InterceptorRegistration ir = registry.addInterceptor(new LoginInterceptor()); + ir.addPathPatterns("/**"); + ir.excludePathPatterns("/js/**", "/html/**", "/image/**", "/css/**", "/api/**"); + } +} + diff --git a/src/main/java/com/realtime/protection/configuration/auth/LoginInterceptor.java b/src/main/java/com/realtime/protection/configuration/auth/LoginInterceptor.java new file mode 100644 index 0000000..bd94552 --- /dev/null +++ b/src/main/java/com/realtime/protection/configuration/auth/LoginInterceptor.java @@ -0,0 +1,31 @@ +package com.realtime.protection.configuration.auth; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; + +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.WebRequestInterceptor; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.handler.WebRequestHandlerInterceptorAdapter; + +import com.realtime.protection.configuration.entity.user.User; +import com.realtime.protection.configuration.response.ResponseResult; + +/** + * @author Yixiang Zhao + **/ +@Component +public class LoginInterceptor implements HandlerInterceptor { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + HttpSession session = request.getSession(); + User user = (User) session.getAttribute("user"); + if (user != null) { + return true; + } + // 未登录 + throw new Exception("not login"); + } +} + diff --git a/src/main/java/com/realtime/protection/server/user/login/LoginController.java b/src/main/java/com/realtime/protection/server/user/login/LoginController.java index 1693e74..b69f1b8 100644 --- a/src/main/java/com/realtime/protection/server/user/login/LoginController.java +++ b/src/main/java/com/realtime/protection/server/user/login/LoginController.java @@ -2,10 +2,7 @@ package com.realtime.protection.server.user.login; import com.realtime.protection.configuration.entity.user.User; import com.realtime.protection.configuration.response.ResponseResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.security.auth.login.LoginException; @@ -36,4 +33,13 @@ public class LoginController { .setData("userId", userId) .setData("success", true); } + + @PostMapping("/auth") + public ResponseResult auth(@RequestParam("sessionData") String sessionData, + @RequestParam("accessToken") String accessToken, + @RequestParam(value = "scopes", required = false) String scopes) { + return ResponseResult.ok().setMessage("success") + .setData("success", true); + } + }