• 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目录和配置图

  • 相关阅读:
    C#数据结构之串
    DevExpress ChartControl 设置它的标题
    [转]DevExpress GridControl 关于使用CardView的一点小结
    将ImageList中的图片转化成byte数组
    可变参数
    jquery动态移除/增加onclick属性详解
    div中英文无法自动换行的解决办法
    jQuery三种事件绑定方式.bind(),.live(),.delegate()
    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等),NB么?
    关于JS、JQuery、CSS的小知识点
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10102023.html
Copyright © 2020-2023  润新知