• 登陆拦截器Interceptor


    拦截器的目的是什么?

    当然是,拦截非法操作,我们需要登陆的,和不需要登陆的需求。

    开始进行操作:

    第一步:

    建立需要拦截的对象,如我自己建立的Iterceptor

    public class LoginInterceptor implements HandlerInterceptor{
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
                throws Exception {
            // TODO Auto-generated method stub
            HttpSession session=request.getSession();
            String contextPath=session.getServletContext().getContextPath();
            String[] requirePath=new String[] {
                    "admin_userlist",
                    "admin_reservelist",
                    "admin_about",
                    "admin_post_list",
                    "admin_config_list"
            };
            String uri=request.getRequestURI();
            uri=org.apache.commons.lang3.StringUtils.remove(uri, contextPath+"/");
            String page=uri;
            if(Beginwith(page,requirePath)) {
                User user=(User) session.getAttribute("user");
                if(user== null) {
                    response.sendRedirect("hello");
                    return false;
                }
            }
            return true;
        }
        private boolean Beginwith(String page,String[] requirePath) {
            boolean result=false;
            for(String requirePa :requirePath) {
                if(StringUtils.startsWith(page, requirePa)) {
                    result=true;
                    return result;
                }
            }
            return result;
            
        }
    
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
                ModelAndView modelAndView) throws Exception {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
                throws Exception {
            // TODO Auto-generated method stub
            
        }
    
    }

    代码不讲解,low

    第二步,配置拦截器configure

    @Configuration
    public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
    
        @Bean
        public LoginInterceptor loginInterceptor() {
            return new LoginInterceptor();
        }
        
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(loginInterceptor())
            .addPathPatterns("/**");
        }
    }
    该拦截器在springboot框架基础上进行配置
  • 相关阅读:
    [转载]小谈网络游戏同步
    [ASE][Daily Scrum]11.06
    [Proposal]Tank Battle——Infinite
    [proposal][app]Watch your time!
    [Proposal]Nano-Diary(纳日记)
    LaTeX中用BibTex管理参考文献
    matlab化简符号表达式
    placeholder颜色变化
    链接图片外边出现蓝框(IE8/IE9/IE10)
    图标排列
  • 原文地址:https://www.cnblogs.com/DIVEY/p/10876756.html
Copyright © 2020-2023  润新知