Ver código fonte

只拦截 admin 请求

魏熙美 5 anos atrás
pai
commit
7220986120

+ 17
- 2
foyo-service/src/main/java/com/huiju/foyo/filter/FoyoFilter.java Ver arquivo

4
 import com.huiju.foyo.session.SessionLoad;
4
 import com.huiju.foyo.session.SessionLoad;
5
 import com.huiju.foyo.session.UserControl;
5
 import com.huiju.foyo.session.UserControl;
6
 import org.springframework.stereotype.Component;
6
 import org.springframework.stereotype.Component;
7
+import org.springframework.util.AntPathMatcher;
8
+import org.springframework.util.PathMatcher;
7
 
9
 
8
 import javax.servlet.*;
10
 import javax.servlet.*;
9
 import javax.servlet.http.HttpServletRequest;
11
 import javax.servlet.http.HttpServletRequest;
17
 @Component
19
 @Component
18
 public class FoyoFilter implements Filter {
20
 public class FoyoFilter implements Filter {
19
 
21
 
22
+    private PathMatcher pathMatcher = new AntPathMatcher();
23
+
24
+    /**
25
+     * 重定向路径
26
+     */
27
+    private static final String TO_LOGIN = "/admin/toLogin";
28
+
20
     @Override
29
     @Override
21
     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
30
     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
22
         HttpServletRequest request = (HttpServletRequest) servletRequest;
31
         HttpServletRequest request = (HttpServletRequest) servletRequest;
23
-        HttpServletResponse response = (HttpServletResponse) servletResponse;
32
+        // HttpServletResponse response = (HttpServletResponse) servletResponse;
24
 
33
 
25
         if (request.getRequestURI().equals("/admin/login")) {
34
         if (request.getRequestURI().equals("/admin/login")) {
26
             filterChain.doFilter(servletRequest, servletResponse);
35
             filterChain.doFilter(servletRequest, servletResponse);
27
             return;
36
             return;
28
         }
37
         }
29
 
38
 
39
+        // 非 admin 请求直接放过
40
+        if (!pathMatcher.match("/admin/**", request.getRequestURI()) ) {
41
+            filterChain.doFilter(servletRequest, servletResponse);
42
+            return;
43
+        }
44
+
30
         SysUser user = SessionLoad.getUser();
45
         SysUser user = SessionLoad.getUser();
31
         if (null == user) {
46
         if (null == user) {
32
             user = (SysUser) request.getSession().getAttribute(UserControl.SESSION_USER);
47
             user = (SysUser) request.getSession().getAttribute(UserControl.SESSION_USER);
33
             if (null == user) {
48
             if (null == user) {
34
                 // 重定向登录
49
                 // 重定向登录
35
-                request.getRequestDispatcher("/admin/toLogin").forward(servletRequest, servletResponse);
50
+                request.getRequestDispatcher(TO_LOGIN).forward(servletRequest, servletResponse);
36
                 return;
51
                 return;
37
             }
52
             }
38
         }
53
         }