• spring filter 配置



    web xml


    1. <filter>
    2.    <filter-name>DelegatingFilterProxy</filter-name>
    3.    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    4.    <init-param>
    5.      <param-name>targetFilterLifecycle</param-name>
    6.      <param-value>true</param-value>
    7.    </init-param>
    8.    <init-param>
    9.      <param-name>targetBeanName</param-name>
    10.      <param-value>autoLoginfilter</param-value>
    11.    </init-param>
    12.  </filter>



    配置自动扫描注解



    1. <context:component-scan base-package="cn.com.do1.important.filter" />


    filter

    1. package cn.com.do1.important.filter;
    2. import cn.com.do1.component.common.util.ValidateUtil;
    3. import cn.com.do1.dqdp.core.DqdpAppContext;
    4. import cn.com.do1.important.service.IAuthService;
    5. import cn.com.do1.wechat.aes.AesException;
    6. import cn.com.do1.wechat.aes.WXBizMsgCrypt;
    7. import cn.com.do1.wechat.basic.WeChatReqsUTLCfg;
    8. import cn.com.do1.wechat.common.ConfKit;
    9. import cn.com.do1.wechat.common.RequestUtil;
    10. import cn.com.do1.wechat.common.Tools;
    11. import cn.com.do1.wechat.core.WeChatCore;
    12. import org.apache.struts2.ServletActionContext;
    13. import org.slf4j.Logger;
    14. import org.slf4j.LoggerFactory;
    15. import org.springframework.stereotype.Component;
    16. import org.springframework.web.context.WebApplicationContext;
    17. import org.springframework.web.context.support.WebApplicationContextUtils;
    18. import org.springframework.web.filter.OncePerRequestFilter;
    19. import javax.annotation.Resource;
    20. import javax.servlet.*;
    21. import javax.servlet.http.Cookie;
    22. import javax.servlet.http.HttpServletRequest;
    23. import javax.servlet.http.HttpServletResponse;
    24. import javax.servlet.http.HttpSession;
    25. import java.io.IOException;
    26. import java.net.CookieManager;
    27. import java.util.HashMap;
    28. import java.util.Map;
    29. /**
    30. * 请求拦截
    31. *
    32. * @author ao.ouyang
    33. */
    34. @Component("autoLoginfilter")
    35. public class AutoLoginFilter extends OncePerRequestFilter {
    36.    private final Logger log = LoggerFactory.getLogger(AutoLoginFilter.class);
    37.    @Resource
    38.    private IAuthService authService;
    39.    @Override
    40.    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
    41.        try {
    42.            HttpSession session = request.getSession(true);
    43.            String username = null;
    44.            String password = null;   // 此sessionid是上次用户登录时保存于用户端的识别码,用于用户后续访问的自动登录。不是本次访问的session id。
    45.            Cookie[] cookies;
    46.            // 如果session中没有user对象,则创建一个。
    47.            Map user = (Map) session.getAttribute("_user");
    48.            if (user == null) {
    49.                user = new HashMap(); // 此时user中的username属性为"",表示用户未登录。
    50.            }
    51.            // 如果user对象的username为"",表示用户未登录。则执行自动登录过程。
    52.            // 否则不自动登录。
    53.            if (ValidateUtil.isNullOrBlank(user.get("USER_NAME"))) {
    54.                cookies = request.getCookies();
    55.                for (Cookie cookie : cookies){
    56.                    if(cookie.getName().equalsIgnoreCase("SESSION_LOGIN_USERNAME")){
    57.                        username = cookie.getValue();
    58.                    }
    59.                    if(cookie.getName().equalsIgnoreCase("SESSION_LOGIN_PASSWORD")){
    60.                        password = cookie.getValue();
    61.                    }
    62.                }
    63.                if(!ValidateUtil.isNullOrBlank(username) && !ValidateUtil.isNullOrBlank(password)){
    64.                    if(authService.validUser(username,password).equalsIgnoreCase("successful")){
    65.                        user = authService.viewPersonByUserName(username);
    66.                        authService.updateUserLog(user);
    67.                        ServletActionContext.getRequest().getSession().setAttribute("_user", user);
    68.                    }
    69.                }
    70.            }
    71.        }catch (Exception e){
    72.            log.error(e.getMessage(),e);
    73.        }
    74.    }
    75. }


  • 相关阅读:
    open_basedir restriction in effect,解决php引入文件权限问题 解决方法
    Linux增加虚拟内存方法
    centos下kill、killall、pkill命令区别
    正则表达式全集
    Mysql中外键的 Cascade ,NO ACTION ,Restrict ,SET NULL
    配置frp实现内网穿透
    解决微信授权回调页面域名只能设置一个的问题 [php]
    高性能Mysql主从架构的复制原理及配置详解
    【Git】工作中99%能用到的git命令
    SVN服务器搭建和使用
  • 原文地址:https://www.cnblogs.com/signheart/p/6609643.html
Copyright © 2020-2023  润新知