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

SpringSecurity设置白名单

   Spring Security 访问权限系列文章:

《SpringSecurity基于配置方法控制访问权限:MVC匹配器、Ant匹配器》

《SpringSecurity基于注解实现方法级别授权:@PreAuthorize、@PostAuthorize、@Secured》

《SpringSecurity设置白名单》

白名单(Whitelist)是一个安全术语,它指的是一个明确的列表或集合,其中包含了被系统、程序或网络明确授权允许访问或执行的对象。这些对象可以是用户、IP地址、电子邮件地址、域名、文件、进程或其他任何实体。

在 Spring Security 中设置白名单(即允许某些特定的URL路径无需认证即可访问)是一项常见的需求。你可以通过配置 WebSecurityConfigurerAdapter 来实现这一点。以下是一个示例,展示了如何配置 Spring Security 以允许特定的 URL 路径无需认证即可访问:

【示例】在 WebSecurityConfig (Spring Security 配置类)中,设置 HTTP 访问白名单。

/**
 * Spring Security 配置类
 * @author pan_junbiao
 **/
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter
{
    //公开权限的路径(白名单)
    private static final String[] WHITE_LIST = {
            "/user/getUserInfo",
            "/js/**",
            "/css/**",
            "/captcha.jpg"
    };
    
    @Override
    protected void configure(HttpSecurity http) throws Exception
    {
        http.authorizeRequests()
                .antMatchers(WHITE_LIST).permitAll() //设置白名单并公开其权限(公开的权限必须放在最上面)
                .anyRequest()     //匹配所有的请求
                .authenticated(); //所有匹配的URL都需要被认证才能访问
    }
}

方法说明:

  • antMatchers(String):通过 Ant 匹配器,匹配 HTTP 端点的访问路径。
  • permitAll():无条件允许一切用户访问。

http://www.dtcms.com/a/32211.html

相关文章:

  • epoll_event的概念和使用案例
  • 如何保存爬虫获取商品评论的数据?
  • 【AI时代】基于AnythingLLM+ Ollama + DeepSeek 搭建本地知识库
  • GeoHD - 一种用于智慧城市热点探测的Python工具箱
  • redis缓存与Mysql数据一致性,要如何解决?
  • Unity贴图与模型相关知识
  • GTSAM 库详细介绍与使用指南
  • DeepSeek全链路开发指南:从零搭建智能问答系统到API无缝对接【内含知识库实战】
  • 微信小程序数据绑定与事件处理:打造动态交互体验
  • 【Altium Designer】差分对等长设置以及绕线
  • Linux基本指令(三)+ 权限
  • Unity中点乘和叉乘对于我们来说的作用是什么?
  • 【愚公系列】《鸿蒙原生应用开发从零基础到多实战》002-TypeScript 类型系统详解
  • Windows安装MySQL教程
  • 基于 QT6 工业非标自动化设备上位机软件开发与设计
  • 对Revit事务机制的一些推测
  • libxls库的编译以及基于Visual studio的配置
  • Qt开发中有关内存管理方面常见的问题分析与解决方案
  • 简讯:Rust 2024 edition and v1.85.0 已发布
  • 【Shell编程 / 9】脚本实战项目:从基础到进阶的自动化管理方案
  • uniapp修改picker-view样式
  • 什么是“可迭代”
  • Springboot的简单推荐实现
  • 机器学习面试八股文——决战金三银四
  • wsl配置
  • 提升C++项目编译速度
  • LDR6020 驱动的一拖多快充线,革新充电体验
  • DeepSeek 助力 Vue 开发:打造丝滑的二维码生成(QR Code)
  • 【Java基础-49.1】Java线程池之FixedThreadPool:使用、原理与应用场景详解
  • 如何调整CAN位宽容忍度?