zoukankan      html  css  js  c++  java
  • Springboot2.0实现URL拦截

    1、创建一个登陆拦截器SecurityInterceptor,它继承HandlerInterceptorAdapter类

    package com.cn.commodity.config;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
    
    public class SecurityInterceptor extends HandlerInterceptorAdapter {
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
                throws Exception {
            HttpSession session = request.getSession();
            if (session.getAttribute(WebSecurityConfig.SESSION_KEY) != null) {
                return true;
            }
    
            // 跳转登录-------controller类中的登陆方法
            String url = "/login";
            response.sendRedirect(url);
            return false;
        }
    }

    2、创建一个URL拦截器WebSecurityConfig类,主要在这个类中实现URL拦截。注意:具体的拦截依据项目而定。

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    @Configuration
    public class WebSecurityConfig extends WebMvcConfigurerAdapter {
    
        public static final String SESSION_KEY = "user";
    
        @Bean
        public SecurityInterceptor getSecurityInterceptor() {
            return new SecurityInterceptor();
        }
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            InterceptorRegistration addInterceptor = registry.addInterceptor(getSecurityInterceptor());
            // 排除配置--对下面的不进行拦截
            addInterceptor.excludePathPatterns("/index");
            addInterceptor.excludePathPatterns("/login");
          //  addInterceptor.excludePathPatterns("/user/**");
            addInterceptor.excludePathPatterns("/start/**");
            // 拦截配置
            addInterceptor.addPathPatterns("/**");
        }
    }

    3、自己写一个controller和一些jsp,就可以实现了。

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class JspController {
        @RequestMapping("/index")
        public String index(){
            return  "index";
        }
    
        @RequestMapping("/login")
        public String login(){
            return  "login";
        }
    }

    4、jsp目录和配置图

  • 相关阅读:
    Python 中lambda 简单介绍
    关于python中带下划线的变量和函数 的意义
    Python 类的方法,下划线有什么不同?
    Python中用format函数格式化字符串的用法(2.7版本讲解哦!)
    如何理解 Python 中的__init__
    Python引用多个模块,调用模块中的函数时,要注意的地方
    Python tips: 什么是*args和**kwargs?
    如何简单地理解Python中的if __name__ == '__main__'
    NLP点滴——文本相似度
    马里奥AI实现方式探索 ——神经网络+增强学习
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10102023.html
Copyright © 2011-2022 走看看