diff --git a/tlias-web-management/pom.xml b/tlias-web-management/pom.xml
index 239c30c..56ab9f4 100644
--- a/tlias-web-management/pom.xml
+++ b/tlias-web-management/pom.xml
@@ -75,6 +75,14 @@
jjwt
0.9.1
+
+
+
+ com.alibaba
+ fastjson
+ 2.0.53
+
+
diff --git a/tlias-web-management/src/main/java/com/inmind/filter/DemoFilter.java b/tlias-web-management/src/main/java/com/inmind/filter/DemoFilter.java
index cf38863..20c8117 100644
--- a/tlias-web-management/src/main/java/com/inmind/filter/DemoFilter.java
+++ b/tlias-web-management/src/main/java/com/inmind/filter/DemoFilter.java
@@ -4,7 +4,9 @@ import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
-@WebFilter(urlPatterns = "/*")
+//@WebFilter(urlPatterns = "/*")
+//@WebFilter(urlPatterns = "/login")
+//@WebFilter(urlPatterns = "/emps/*")
public class DemoFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
@@ -15,8 +17,10 @@ public class DemoFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
System.out.println("doFilter,过滤器的拦截方法执行了");
+ System.out.println("DemoFilter---放行前的逻辑");
//放行
filterChain.doFilter(request,response);
+ System.out.println("DemoFilter---放行后的逻辑");
}
@Override
diff --git a/tlias-web-management/src/main/java/com/inmind/filter/LoginCheckFilter.java b/tlias-web-management/src/main/java/com/inmind/filter/LoginCheckFilter.java
new file mode 100644
index 0000000..18047e5
--- /dev/null
+++ b/tlias-web-management/src/main/java/com/inmind/filter/LoginCheckFilter.java
@@ -0,0 +1,67 @@
+package com.inmind.filter;
+
+import com.alibaba.fastjson.JSONObject;
+import com.inmind.pojo.Result;
+import com.inmind.utils.JwtUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.StringUtils;
+
+import javax.servlet.*;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@WebFilter(urlPatterns = "/*")//登录校验过滤器,拦截所有的资源请求
+@Slf4j
+public class LoginCheckFilter implements Filter {
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+
+ //1.获取请求url(之前都是通过HttpServletRequest获取请求)
+ HttpServletRequest request = (HttpServletRequest) servletRequest;
+ HttpServletResponse response = (HttpServletResponse) servletResponse;
+ String url = request.getRequestURI();//http://localhost:8080/login或者http://localhost:8080/emps
+ log.info("请求url:"+url);
+ //2.判断请求url中是否有login,如果包含那就是登录接口,直接放行
+ if (url.contains("login")) {
+ log.info("当前是登录请求,直接放行");
+ filterChain.doFilter(servletRequest,servletResponse);
+ return;//放行后会回到当前代码中,所以要直接提前结束方法功能,否则下面的业务逻辑还会执行
+ }
+ //3.如果不是登录操作,获取请求头中的令牌
+ String jwt = request.getHeader("token");
+
+ //4.判断令牌是否存在
+ if (!StringUtils.hasLength(jwt)) {
+ log.info("令牌不存在,直接响应未登录状态");
+ // 未登录的响应实现
+ notLogin(response);
+ return;
+ }
+
+ //5.判断令牌的合法性,如果不合法则,响应未登录状态
+ try {
+ JwtUtils.parseJWT(jwt);
+ } catch (Exception e) {
+ //未登录的响应实现
+ notLogin(response);
+ return;
+ }
+
+ //放行
+ filterChain.doFilter(servletRequest,servletResponse);
+ return;
+ }
+
+ private void notLogin(HttpServletResponse response) throws IOException {
+ //根据接口文档响应json,之前通过spring的控制器的@ResponseBody注解自动转换为json返回
+ //但是当前不是控制器,所以我们要手动封装json数据响应
+ Result error = Result.error("NOT_LOGIN");
+ //手动将java对象转为json字符串----阿里巴巴fastJson
+ String notLoginJson = JSONObject.toJSONString(error);
+ //响应数据通过响应对象,直接返回给浏览器(客户端)
+ response.getWriter().write(notLoginJson);
+ return;
+ }
+}
diff --git a/tlias-web-management/src/main/java/com/inmind/filter/XbcFilter.java b/tlias-web-management/src/main/java/com/inmind/filter/XbcFilter.java
new file mode 100644
index 0000000..bef45ff
--- /dev/null
+++ b/tlias-web-management/src/main/java/com/inmind/filter/XbcFilter.java
@@ -0,0 +1,16 @@
+package com.inmind.filter;
+
+import javax.servlet.*;
+import javax.servlet.annotation.WebFilter;
+import java.io.IOException;
+
+//@WebFilter(urlPatterns = "/*")
+public class XbcFilter implements Filter {
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
+ System.out.println("XbcFilter -- 放行前的逻辑");
+ //放行
+ filterChain.doFilter(request,response);
+ System.out.println("XbcFilter --- 放行后的逻辑");
+ }
+}