zoukankan      html  css  js  c++  java
  • XX需求分析系统每日进度(三)

    添加路径拦截功能

    思路:默认拦截所有路径,放开一些不重要的路径,其他路径根据登录拦截器判断是否放行

    • 主要代码如下
    1. 登录拦截器
    @Component
    public class LoginInterceptor implements HandlerInterceptor {
    
        @Autowired
        ReqSearchServiceImpl service;
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
            //1、获得cookie
            Cookie[] cookies=request.getCookies();
            //没有cookie信息,则重定向到登录界面
            if(null==cookies){
                response.sendRedirect(request.getContextPath()+"/toLoginPage");
                return false;
            }
            // 定义cookie_username,用户的一些登录信息,例如用户名,密码等
            String username=null;
            //获取cookie里面的一些用户信息
            for (Cookie item : cookies) {
                if("username".equals(item.getName())){
                    username=item.getValue();
                    break;
                }
            }
            //如果cookie里面没有包含用户的一些登录信息,则重定向到登录界面
            if(StringUtils.isEmpty(username)){
                response.sendRedirect(request.getContextPath()+"/toLoginPage");
                return false;
            }
            //获取HttpSession对象
            HttpSession session=request.getSession();
            //获取我们登录后存在session中的用户信息,如果为空,表示session已经过期
            Object object=session.getAttribute("user");
            if(null==object){
                //将用户保存到session中
                UserMore userMore=service.getUserByUsername(username);
                session.setAttribute("user",userMore);
            }
            //已经登录
            return true;
        }
    }
    
    

    1. web配置类
    @Configuration
    public class WebConfigurer implements WebMvcConfigurer {
    
        @Autowired
        private LoginInterceptor loginInterceptor;
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            InterceptorRegistration ir=registry.addInterceptor(loginInterceptor);
            //拦截路径
            ir.addPathPatterns("/*");
            //不拦截路径
            List<String> irs=new ArrayList<>();
            irs.add("/toLoginPage");
            irs.add("/getVerify");
            irs.add("/checkVerify");
            irs.add("/toRegisterPage");
            irs.add("/addUser");
            irs.add("/getLoginResult");
            ir.excludePathPatterns(irs);
        }
    }
    
    

    明天任务:学习mybatis分页插件,实现查询分页展示
  • 相关阅读:
    分类模型之支持向量机
    数据预处理
    数据挖掘基本流程
    【项目】项目95
    【项目】项目94
    【项目】项目93
    【项目】项目92
    【项目】项目91
    【项目】项目90
    【项目】项目89
  • 原文地址:https://www.cnblogs.com/weixiao1717/p/13904952.html
Copyright © 2011-2022 走看看