广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot登录用户权限拦截器
  • 719
分享到

SpringBoot登录用户权限拦截器

2024-04-02 19:04:59 719人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

1. 创建自定义拦截器类并实现 HandlerInterceptor 接口 package com.xgf.online_mall.interceptor; import c

1. 创建自定义拦截器类并实现 HandlerInterceptor 接口


package com.xgf.online_mall.interceptor;

import com.xgf.online_mall.system.domain.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.WEB.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.Http.httpservletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.NIO.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFORMat;
import java.util.Date;
import java.util.logging.SimpleFormatter;

@Slf4j
@Component
public class UserLoginAuthInterceptor implements HandlerInterceptor {
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    log.info(" ======== UserAuthInterceptor preHandle 登录权限拦截器拦截");
    User user = (User) request.getSession().getAttribute("loginUser");
    //未登录才判断,登录了直接放行
    if(user == null){
      //获取访问路径
      String address = request.getRequestURI();
      log.info("======== 拦截,访问路径 address : {}", address);
      response.sendRedirect(request.getContextPath() + "/login.html");
      return false;

      
    }
    //其它模块或者已经登录,就直接放行
//    log.info("======== 已登录 user = {}", user);
    return true;
  }


  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    log.info(" ===== UserAuthInterceptor postHandle");
  }

  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    log.info("==== UserAuthInterceptor afterCompletion");

    //记录日志 向文件里面写日志
    //获取服务器记录日志log文件所存放的目录位置 -- Tomcat下的真实路径+log目录
    String logdir = request.getServletContext().getRealPath("log");
    //路径不存在就创建
    Path logdirPath = Paths.get(logdir);
    if(Files.notExists(logdirPath)){
      Files.createDirectories(logdirPath);
    }
    //目录存在就将数据[字符]写入 //存放日志的路径+文件名
    Path logfile = Paths.get(logdir,"userlog.log");
    //logfile.toFile() paths转换为File类型 true以追加的方式写入
    BufferedWriter writer = new BufferedWriter(new FileWriter(logfile.toFile(),true));

    //获取登录用户信息
    User user = (User)request.getSession().getAttribute("loginUser");
    //记录user信息,存入日志
    writer.write(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " >> " + user +"\r\n");
    writer.flush();
    writer.close();
  }
}

2. 创建WebmvcConfigurer接口实现类,注册并生效自定义的拦截器


import com.xgf.online_mall.constant.PathConstantParam;
import com.xgf.online_mall.interceptor.UserLoginAuthInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorReGIStry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.ArrayList;
import java.util.List;

@Configuration
@Slf4j
public class LoginConfig implements WebMvcConfigurer {
  @Autowired
  private UserLoginAuthInterceptor userLoginAuthInterceptor;

  
  @Override
  public void addInterceptors(InterceptorRegistry registry){
    log.info(" ======== LoginConfig.addInterceptors");
    //添加对用户未登录的拦截器,并添加排除项
    //error路径,excludePathPatterns排除访问的路径在项目中不存在的时候,
    //SpringBoot会将路径变成 /error, 导致无法进行排除。
    registry.addInterceptor(userLoginAuthInterceptor)
        .addPathPatterns("/**")
        .excludePathPatterns("/js/**", "/CSS/**", "/img/**", "/plugins/**")
        .excludePathPatterns("/login.html", "/register.html", "/system/user/login", "/system/user/login", "/index")
        .excludePathPatterns("/error");
  }
 }

到此这篇关于SpringBoot登录用户权限拦截器的文章就介绍到这了,更多相关SpringBoot 用户权限拦截器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot登录用户权限拦截器

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

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

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

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

下载Word文档
猜你喜欢
  • SpringBoot登录用户权限拦截器
    1. 创建自定义拦截器类并实现 HandlerInterceptor 接口 package com.xgf.online_mall.interceptor; import c...
    99+
    2022-11-11
  • SpringBoot登录用户权限拦截器的实现方法
    这篇文章主要介绍了SpringBoot登录用户权限拦截器的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 创建自定义拦截器类并实现 HandlerIntercepto...
    99+
    2023-06-14
  • SpringBoot拦截器实现登录拦截
    SpringBoot拦截器可以做什么可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等。SpringBoot拦截器实现登录拦截pom.xml: 4.0.0 org.s...
    99+
    2015-07-20
    java教程 Spring Boot java
  • 数据权限拦截器,多租户拦截器
    一、背景介绍 WEB类型软件产品,在Java(SpringBoot)+MybatisPlus架构场景下,本文针对下面两个问题,提供解决方案: 多租户的产品,想在表内级别上,实现租户数据隔离(分表、分库方案不在本文讨论范围内)。ToB、ToG...
    99+
    2023-09-11
    mybatis java spring boot
  • 如何使用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使用拦截器判断是否登录
    目录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登录验证token拦截器的实现
    目录注解定义token生成与验证拦截器定义拦截器配置定义拦截器的方法执行类注解使用返回值-全局异常类定义各种测试不传token制造可行的假token伪造token测试拓展:从请求中获...
    99+
    2022-11-13
  • springboot如何使用拦截器判断是否登录
    这期内容当中小编将会给大家带来有关springboot如何使用拦截器判断是否登录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。springboot拦截器判断是否登录实现拦截器的两个步骤自定义拦截器实现Ha...
    99+
    2023-06-25
  • SpringBoot登录验证token拦截器如何实现
    这篇文章主要讲解了“SpringBoot登录验证token拦截器如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot登录验证token拦截器如何实现”吧!用户访问接口验...
    99+
    2023-07-02
  • SpringBoot实现登录拦截器的方法详解
    在项目目录下建立两个包:inter 与contsfig 在inter新建层中实现HandlerInterceptor的继承类 package com.example.gamebo...
    99+
    2022-11-13
  • 7.5 SpringBoot 拦截器Interceptor实战 统一角色权限校验
    前言 在【7.1】管理员图书录入和修改API,当时预告过:并没有写【校验是否是管理员】的逻辑,因为是通用逻辑,会单写一篇来细讲,那么今天就来安排! 角色权限校验,是保证接口安全必备的能力:有权限才可以操作!所以,一般对于这种通用逻辑,推荐不...
    99+
    2023-08-16
    spring boot 后端 java Interceptor 拦截器 统一角色校验 SpringBoot实战 原力计划
  • SpringBoot实现登录拦截器超详细教程分享
    目录SpringBoot实现登录拦截器SpringBoot 实现登录拦截的原理springboot拦截器excludePathPatterns方法不生效的坑与解决方法问题解决方法总结...
    99+
    2023-02-16
    SpringBoot实现登录拦截器 SpringBoot登录拦截器 SpringBoot登录拦截
  • Java SpringBoot 使用拦截器作为权限控制的实现方法
    如何实现 首先拦截器是属于web这块的,那我们需要引入springboot web模块,具体版本在parent中 <dependency> <group...
    99+
    2022-11-12
  • SpringBoot使用自定义注解实现权限拦截的示例
    本文介绍了SpringBoot使用自定义注解实现权限拦截的示例,分享给大家,具体如下:HandlerInterceptor(处理器拦截器)常见使用场景 日志记录: 记录请求信息的日志, 以便进行信息监控, 信息统计, 计算PV(page ...
    99+
    2023-05-31
    springboot 权限拦截
  • 使用struts2拦截器如何实现对用户进行权限控制
    使用struts2拦截器如何实现对用户进行权限控制?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。大多数网站会设置用户权限,如过滤非法用户,用户不登录时不能进行访问,或者设置...
    99+
    2023-05-31
    struts 权限控制 拦截器
  • 基于struts2拦截器如何防止未登录用户操作
    这篇文章给大家分享的是有关基于struts2拦截器如何防止未登录用户操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一般,我们的web应用都是只有在用户登录之后才允许操作的,也就是说我们不允许非登录认证的用户直...
    99+
    2023-05-31
    struts2
  • SpringMVC如何使用拦截器控制登录
    SpringMVC如何使用拦截器控制登录?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SpringMVC读取Cookie判断用户是否登录,对每一个action都要进行判断。...
    99+
    2023-05-31
    springmvc 拦截器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作