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); + } + }