通用框架平台,每个分支对应子通用框架平台,禁止Merge不同分支!! 分支版本区别见项目内readme.md
whycxzp
2024-01-10 9a2b1251fc48874b76d3b02dbfc306698325dfeb
src/main/java/com/whyc/filter/KickedOutFilter.java
@@ -2,7 +2,10 @@
import com.whyc.pojo.User;
import com.whyc.util.ShiroUtil;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
@@ -15,6 +18,9 @@
@WebFilter(urlPatterns = "/*",filterName = "kickedOutFilter")
public class KickedOutFilter implements Filter {
    @Autowired
    RedissonClient redissonClient;
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpSession session = ((HttpServletRequest) request).getSession();
@@ -23,7 +29,7 @@
            User user = ShiroUtil.getUser();
            if (user.getId() != 0) {
                System.out.println("Filter过滤器中获取到的当前Session的SessionId为:" + session.getId());
                if (!request.getServletContext().getAttribute(user.getName()).equals(session.getId())) {
                if (!redissonClient.getBucket(user.getName()).get().equals(session.getId())) {
                    //如果当前Session所对应的SessionId与全局中用户对应的SessionId不一致,则清除当前Session
                    session.invalidate();
                    response.setContentType("text/html;charset=utf-8");