当前位置: 首页 > news >正文

【Spring Security】基于SpringBoot3.3.4版本②如何配置免鉴权Path

基于Spring Boot 3.3.4,详细说明Spring Security 6.3.3的使用

  • 摘要
  • 本地开发环境说明
  • SecurityFilterChain介绍
  • application.yml
  • Wen3SecurityProperties.java
  • 修改DemoWen3Security
  • 修改SecurityFilterChain
  • IgnoredPathController.java
  • IgnoredPathController2.java
  • 启动工程
  • 测试
    • 测试免鉴权Path
    • 接口响应
    • 测试鉴权Path
    • 接口响应
  • 总结

摘要

【Spring Security】基于SpringBoot3.3.4版本①整合JWT的使用教程
在这篇文章中,详细演示了使用最新版Spring Boot,完成一个微服务开发,并使用Spring Security组件完成登录认证,同时整合了JWT,使用的RSA公私钥签名、验签。

接下来继续讲解下一个业务场景:一个真实场景的微服务,难免会有一些请求Path不需要任何鉴权,比如某些仅对内的API、允许匿名访问的资源等等。那么,如何在Spring Security体系中,把这些免鉴权的Path绕过认证呢?并且可以灵活的配置呢?

接下来让我就带着你一起解决这个业务场景中的问题吧!

本地开发环境说明

开发用到的主要框架、工具版本如下

开发依赖版本
Spring Boot3.3.4
Spring Security6.3.3
JDK21
IntelliJ IDEA2024.2.3

【Spring Security】基于SpringBoot3.3.4版本①整合JWT的使用教程 建议大家先阅读这篇文章,本文是对这篇文章的进一步扩展。

SecurityFilterChain介绍

我们在构建SecurityFilterChain的时候,可以通过authorizeHttpRequestsCustomizer.requestMatchers(HttpMethod.POST, "/login/common").permitAll()这种方式告诉Spring Security,对于/login/common这个path不需要鉴权,代码如下

    @Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {Wen3SecurityProperties wen3SecurityProperties = wen3SecurityProperties();http.authorizeHttpRequests(authorizeHttpRequestsCustomizer -> {authorizeHttpRequestsCustomizer.requestMatchers(HttpMethod.POST, "/login/common").permitAll().requestMatchers(HttpMethod.GET, "/login/verify").permitAll().requestMatchers(new AntPathRequestMatcher("/**/test")).permitAll().anyRequest().authenticated();});// token校验过滤器http.addFilterBefore(jwtFilter(), UsernamePasswordAuthenticationFilter.class);// 禁用表单提交 取消默认的登录页面http.formLogin(AbstractHttpConfigurer::disable);// 禁用注销 取消默认的登出页面http.logout(AbstractHttpConfigurer::disable)
http://www.lryc.cn/news/452913.html

相关文章:

  • 信息学奥赛复赛复习11-CSP-J2020-04方格取数-动态规划、斐波那契数列、最优子结构、重叠子问题、无后效性
  • Hive数仓操作(十二)
  • 计算机毕业设计 基于SpringBoot和Vue的课程教学平台的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 有状态(Session) VS 无状态(Token)
  • 天坑!Spark+Hive+Paimon+Dolphinscheduler
  • JAVA——IO框架
  • 项目管理系统如何实现项目申报流程自动化?
  • ndb9300public-ndb2excel简介
  • C++:const成员
  • 基于ROS的激光雷达点云物体检测
  • 大模型训练环境搭建
  • 使用Java调用GeoTools实现全球国家矢量数据入库实战
  • 计算机毕业设计 基于Python的广东旅游数据分析系统的设计与实现 Python+Django+Vue Python爬虫 附源码 讲解 文档
  • Springboo通过http请求下载文件到服务器
  • 使用CSS实现酷炫加载
  • 【STM32-HAL库】AHT10温湿度传感器使用(STM32F407ZGT6配置i2c)(附带工程下载连接)
  • 深入理解网络通信: 长连接、短连接与WebSocket
  • Linux·环境变量与进程地址空间
  • MYSQL 乐观锁
  • SpringCloud入门(十二)全局过滤器和跨域
  • 51单片机系列-按键检测原理
  • 基于元神操作系统实现NTFS文件操作(五)
  • AutoCAD学习
  • go的一些知识点
  • 前端 vue3 对接科大讯飞的语音在线合成API
  • 缺省参数
  • Stable Diffusion绘画 | 来训练属于自己的模型:炼丹启动
  • 08_OpenCV文字图片绘制
  • 【笔记】选择题笔记+数据结构笔记
  • 浅谈汽车智能座舱如何实现多通道音频