From 129bc8f0c9bce0306aa99fafde97689f645dbbb5 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期三, 20 一月 2021 09:39:30 +0800
Subject: [PATCH] finish basic jwt func

---
 src/main/java/com/whyc/filter/KickedOutFilter.java |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/whyc/filter/KickedOutFilter.java b/src/main/java/com/whyc/filter/KickedOutFilter.java
index 858a11d..8ad316f 100644
--- a/src/main/java/com/whyc/filter/KickedOutFilter.java
+++ b/src/main/java/com/whyc/filter/KickedOutFilter.java
@@ -2,6 +2,12 @@
 
 import com.whyc.pojo.User;
 import com.whyc.util.ShiroUtil;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.subject.Subject;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.annotation.Order;
+import org.springframework.util.StringUtils;
 
 import javax.servlet.*;
 import javax.servlet.annotation.WebFilter;
@@ -12,18 +18,21 @@
 /**
  * 璐﹀彿鍚屾椂鐧诲綍鍙兘1涓�
  */
-@WebFilter(urlPatterns = "/*",filterName = "kickedOutFilter")
+@WebFilter(urlPatterns = "/*", filterName = "kickedOutFilter")
 public class KickedOutFilter implements Filter {
 
     @Override
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         HttpSession session = ((HttpServletRequest) request).getSession();
         //濡傛灉鏄櫥褰�,鍒欎笉杩涜Session瀵规瘮,鏀捐
-        if(!((HttpServletRequest) request).getRequestURI().contains("login")) {
-            User user = ShiroUtil.getUser();
-            if (user.getId() != 0) {
+        if (!((HttpServletRequest) request).getRequestURI().contains("login")) {
+            String userName = (String) request.getServletContext().getAttribute(session.getId());
+            if (!StringUtils.isEmpty(userName)) {
+                //淇濆瓨鐢ㄦ埛鐨剆ession鏈�鏂版椿璺冩椂闂�
+                request.getServletContext().setAttribute("exp_" + userName, System.currentTimeMillis());
+
                 System.out.println("Filter杩囨护鍣ㄤ腑鑾峰彇鍒扮殑褰撳墠Session鐨凷essionId涓�:" + session.getId());
-                if (!request.getServletContext().getAttribute(user.getName()).equals(session.getId())) {
+                if (!request.getServletContext().getAttribute(userName).equals(session.getId())) {
                     //濡傛灉褰撳墠Session鎵�瀵瑰簲鐨凷essionId涓庡叏灞�涓敤鎴峰搴旂殑SessionId涓嶄竴鑷�,鍒欐竻闄ゅ綋鍓峉ession
                     session.invalidate();
                     response.setContentType("text/html;charset=utf-8");
@@ -31,8 +40,8 @@
                     return;
                 }
             }
-        }
 
-        chain.doFilter(request,response);
+        }
+        chain.doFilter(request, response);
     }
 }

--
Gitblit v1.9.1