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分頁插件,實現查詢分頁展示
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章