广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >SpringBoot拦截器实现登录拦截
  • 555
分享到

SpringBoot拦截器实现登录拦截

java教程SpringBootjava 2015-07-20 23:07:35 555人浏览 绘本
摘要

SpringBoot拦截器可以做什么可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等。SpringBoot拦截器实现登录拦截pom.xml: 4.0.0 org.s

SpringBoot拦截器可以做什么

可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等。

SpringBoot拦截器实现登录拦截

pom.xml:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.0.RELEASE
        
    
    com.wyj
    SpringBoot-interceptor01
    0.0.1-SNAPSHOT
    springboot-interceptor01
    springboot拦截器

    
        1.8
    

    
        
        
            org.springframework.boot
            spring-boot-starter-WEB
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        

        
        
            org.projectlombok
            lombok
            true
        

        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
    

    
        springboot-interceptor01
        
            
                org.springframework.boot
                spring-boot-Maven-plugin
            
        
    

WebMvcConfigurer:继承WebmvcConfigurationSupport类,重写addInterceptors方法


@Configuration
public class WebMvcConfigurer extends WebMvcConfigurationSupport {

    
//    @Override
//    public void addInterceptors(InterceptorReGIStry registry) {
//        
//        registry.addInterceptor(new AuthorityInterceptor())
//                .addPathPatterns("/user
//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//        
//        registry.addInterceptor(new AuthorityInterceptor())
//                .addPathPatterns("/user
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        
        registry.addInterceptor(new AuthorityInterceptor())
                .addPathPatterns("/user
    @Override
    public boolean preHandle(httpservletRequest request, HttpServletResponse response,
                             Object object) throws Exception {
        String uri = request.getRequestURI();
        if (NOT_INTERCEPT_URI.contains(uri)) {
            log.info("不拦截" + uri);
            return true;
        }
        log.info("拦截" + uri);
        HttpSession session = request.getSession();
        UserInfo userInfo = (UserInfo) session.getAttribute("user_info_in_the_session");
        if (userInfo == null) {
            throw new RuntimeException("用户未登陆");
        }
        return true;
    }

    
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object object, ModelAndView mv) throws Exception {
    }

    
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object, Exception ex) throws Exception {
    }
}

UserController:

@Controller
@RequestMapping(value = "/user")
public class UserController {

    @RequestMapping(value = "/login.html")
    public String index() {
        return "login";
    }

    @RequestMapping(value = "/login")
    public String login(User user) {
        //查询数据库,我这里直接写死
        User dbUser = new User(1, "zhangsan", "123456", "admin");
        if (dbUser.getPassword().equals(user.getPassword())) {
            UserInfo userInfo = new UserInfo(dbUser.getId(), dbUser.getUsername(), dbUser.getRole());
            HttpSession session = getRequest().getSession();
            session.setAttribute("user_info_in_the_session", userInfo);
            return "admin";
        }
        return "login";
    }

    @RequestMapping(value = "/userInfo")
    @ResponseBody
    public String userInfo() {
        HttpSession session = getRequest().getSession();
        UserInfo userInfo = (UserInfo) session.getAttribute("user_info_in_the_session");
        return userInfo.toString();
    }

    private HttpServletRequest getRequest() {
        return ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
    }
}

User:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {

    private int id;
    private String username;
    private String passWord;
    private String role;

}

UserInfo: 用于存在用户信息储存在session中

@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo implements Serializable {

    private int id;
    private String username; 
    private String role;

}

login.html:只是一个很简单的登录表单




    
    登陆页面


登陆:
用户名:
密   码:

admin.html:




    
    首页


--结束END--

本文标题: SpringBoot拦截器实现登录拦截

本文链接: https://www.lsjlt.com/news/2454.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot拦截器实现登录拦截
    SpringBoot拦截器可以做什么可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等。SpringBoot拦截器实现登录拦截pom.xml: 4.0.0 org.s...
    99+
    2015-07-20
    java教程 Spring Boot java
  • 如何使用SpringBoot拦截器实现登录拦截
    小编给大家分享一下如何使用SpringBoot拦截器实现登录拦截,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!可以对URL路径进行拦截,可以用于权限验证、解决乱码...
    99+
    2023-06-29
  • SpringBoot拦截器实现登录拦截的示例代码
    可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等  实现代码 新建 interceptor包 添加拦截器代码 package c...
    99+
    2022-11-13
  • SpringBoot如何实现登录拦截器
    这篇文章主要介绍“SpringBoot如何实现登录拦截器”,在日常操作中,相信很多人在SpringBoot如何实现登录拦截器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot如何实现登录拦截器...
    99+
    2023-07-02
  • SpringBoot登录验证token拦截器的实现
    目录注解定义token生成与验证拦截器定义拦截器配置定义拦截器的方法执行类注解使用返回值-全局异常类定义各种测试不传token制造可行的假token伪造token测试拓展:从请求中获...
    99+
    2022-11-13
  • SpringBoot登录用户权限拦截器
    1. 创建自定义拦截器类并实现 HandlerInterceptor 接口 package com.xgf.online_mall.interceptor; import c...
    99+
    2022-11-11
  • SpringBoot登录验证token拦截器如何实现
    这篇文章主要讲解了“SpringBoot登录验证token拦截器如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot登录验证token拦截器如何实现”吧!用户访问接口验...
    99+
    2023-07-02
  • SpringBoot实现登录拦截器的方法详解
    在项目目录下建立两个包:inter 与contsfig 在inter新建层中实现HandlerInterceptor的继承类 package com.example.gamebo...
    99+
    2022-11-13
  • SpringBoot通过ThreadLocal怎么实现登录拦截
    本篇内容主要讲解“SpringBoot通过ThreadLocal怎么实现登录拦截”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot通过ThreadLocal怎么实现登录拦截”吧!...
    99+
    2023-06-30
  • node.js怎么实现登录拦截器
    本文小编为大家详细介绍“node.js怎么实现登录拦截器”,内容详细,步骤清晰,细节处理妥当,希望这篇“node.js怎么实现登录拦截器”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先我们实现一个过滤器expo...
    99+
    2023-07-04
  • vue路由实现登录拦截
    目录一、概述二、路由导航守卫实现登录拦截一、概述 在项目开发中每一次路由的切换或者页面的刷新都需要判断用户是否已经登录,前端可以判断,后端也会进行判断的,我们前端最好也进行判断。 ...
    99+
    2022-11-11
  • springboot使用拦截器判断是否登录
    目录springboot拦截器判断是否登录实现拦截器的两个步骤1、自定义拦截器2、自定义配置类继承WebMvcConfigurerAdapterspringboot 增加拦截器判断是...
    99+
    2022-11-12
  • SpringBoot图文并茂讲解登录拦截器
    目录1.相关概念1.实现效果2.实现步骤2.代码实现1.配置文件2.java代码3.前端代码3.运行测试1.相关概念 1.实现效果 当没有输入正确的账号密码登录成功时, 除了登录页,...
    99+
    2022-11-13
  • SpringBoot实现登录拦截器超详细教程分享
    目录SpringBoot实现登录拦截器SpringBoot 实现登录拦截的原理springboot拦截器excludePathPatterns方法不生效的坑与解决方法问题解决方法总结...
    99+
    2023-02-16
    SpringBoot实现登录拦截器 SpringBoot登录拦截器 SpringBoot登录拦截
  • SpringBoot登录用户权限拦截器的实现方法
    这篇文章主要介绍了SpringBoot登录用户权限拦截器的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 创建自定义拦截器类并实现 HandlerIntercepto...
    99+
    2023-06-14
  • vue+axios如何实现登录拦截
    这篇文章给大家分享的是有关vue+axios如何实现登录拦截的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。该项目是利用了Github 提供的personal token作为登录t...
    99+
    2022-10-19
  • vue如何实现http登录拦截
    今天小编给大家分享一下vue如何实现http登录拦截的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。路由文件export&nb...
    99+
    2023-07-04
  • SpringBoot通过ThreadLocal实现登录拦截详解流程
    目录1 前言2 具体类2.1HandlerInterceptor2.2WebMvcConfigurer3 代码实践1 前言 注册登录可以说是平时开发中最常见的东西了,但是一般进入到公...
    99+
    2022-11-13
  • Spring MVC如何实现的登录拦截器
    小编给大家分享一下Spring MVC如何实现的登录拦截器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!定义拦截器    ...
    99+
    2023-05-31
    springmvc
  • SpringMVC拦截器如何实现单点登录
    这篇文章将为大家详细讲解有关SpringMVC拦截器如何实现单点登录,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。单点登录的功能在实际的应用场景中还是很重要的,逻辑上我们也不允许一个用户同时在进行着两个操...
    99+
    2023-05-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作