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