diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 4903cef..bb7af72 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -16,17 +16,10 @@ - - - - - - - - - - + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml index d399fe2..7202121 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -6,7 +6,6 @@ - diff --git a/learn03-springboot/src/main/java/top/awin_x/learn/controller/HelloController.java b/learn03-springboot/src/main/java/top/awin_x/learn/controller/HelloController.java index b232605..4e9c83c 100644 --- a/learn03-springboot/src/main/java/top/awin_x/learn/controller/HelloController.java +++ b/learn03-springboot/src/main/java/top/awin_x/learn/controller/HelloController.java @@ -4,7 +4,6 @@ import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.*; import top.awin_x.learn.pojo.CourseInfo; import top.awin_x.learn.pojo.Result; -import top.awin_x.learn.service.impl.CourseServiceImpl; import java.util.ArrayList; diff --git a/test05/pom.xml b/test05/pom.xml index 09c8662..f0925ed 100644 --- a/test05/pom.xml +++ b/test05/pom.xml @@ -89,6 +89,13 @@ 0.0.1-SNAPSHOT compile + + + com.alibaba.fastjson2 + fastjson2 + 2.0.53 + + diff --git a/test05/src/main/java/test05/Test05Application.java b/test05/src/main/java/test05/Test05Application.java index 009b481..f8fb0a2 100644 --- a/test05/src/main/java/test05/Test05Application.java +++ b/test05/src/main/java/test05/Test05Application.java @@ -4,10 +4,8 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; -@ServletComponentScan @SpringBootApplication public class Test05Application { - public static void main(String[] args) { SpringApplication.run(Test05Application.class, args); } diff --git a/test05/src/main/java/test05/config/WebConfig.java b/test05/src/main/java/test05/config/WebConfig.java new file mode 100644 index 0000000..b908e2f --- /dev/null +++ b/test05/src/main/java/test05/config/WebConfig.java @@ -0,0 +1,23 @@ +package test05.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import test05.interceptor.LoginCheckInterceptor; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + private final LoginCheckInterceptor loginCheckInterceptor; + + @Autowired + WebConfig(LoginCheckInterceptor loginCheckInterceptor){ + this.loginCheckInterceptor = loginCheckInterceptor; + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**").excludePathPatterns("/login"); + } +} diff --git a/test05/src/main/java/test05/controller/studentController.java b/test05/src/main/java/test05/controller/studentController.java index fab3ec7..22da065 100644 --- a/test05/src/main/java/test05/controller/studentController.java +++ b/test05/src/main/java/test05/controller/studentController.java @@ -3,6 +3,7 @@ package test05.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import test05.pojo.Result; import test05.service.StudentService; @RestController @@ -15,5 +16,9 @@ public class studentController { } @RequestMapping("get") - public String get() {} + public Result get() { + Result result = new Result(); + + return result; + } } diff --git a/test05/src/main/java/test05/filter/loginFilter.java b/test05/src/main/java/test05/filter/loginFilter.java deleted file mode 100644 index d857c7e..0000000 --- a/test05/src/main/java/test05/filter/loginFilter.java +++ /dev/null @@ -1,38 +0,0 @@ -package test05.filter; - -import io.jsonwebtoken.ExpiredJwtException; -import io.jsonwebtoken.MalformedJwtException; -import io.jsonwebtoken.security.SignatureException; -import jakarta.servlet.*; -import jakarta.servlet.annotation.WebFilter; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import test05.utils.JwtUtils; - -import java.io.IOException; -import java.util.Map; -import java.util.Objects; - -//@WebFilter("/*") -public class loginFilter implements Filter { - - @Override - public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { - if (((HttpServletRequest) servletRequest).getRequestURI().equals("/userAction/login")) { - filterChain.doFilter(servletRequest, servletResponse); - return; - } - String token = ((HttpServletRequest) servletRequest).getHeader("token"); - System.out.println("token:" + token); - if (token != null) { - try{ - Map jwtContent = JwtUtils.parseJwt(token); - }catch(SignatureException | ExpiredJwtException | MalformedJwtException e){ - ((HttpServletResponse) servletResponse).sendError(HttpServletResponse.SC_FORBIDDEN); - } - filterChain.doFilter(servletRequest, servletResponse); - }else{ - ((HttpServletResponse) servletResponse).sendError(HttpServletResponse.SC_FORBIDDEN); - } - } -} diff --git a/test05/src/main/java/test05/interceptor/LoginCheckInterceptor.java b/test05/src/main/java/test05/interceptor/LoginCheckInterceptor.java new file mode 100644 index 0000000..6562156 --- /dev/null +++ b/test05/src/main/java/test05/interceptor/LoginCheckInterceptor.java @@ -0,0 +1,33 @@ +package test05.interceptor; + +import com.alibaba.fastjson2.JSONObject; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; +import test05.pojo.Result; +import test05.utils.JwtUtils; + +@Component +public class LoginCheckInterceptor implements HandlerInterceptor { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + try{ + JwtUtils.parseJwt(token); + }catch(Exception e){; + response.getWriter().print(JSONObject.toJSONString(Result.error("not login"))); + return false; + } + return true; + } + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +}