@EnableWebSecurity 做了哪些操作

在Spring Security中,@EnableWebSecurity注解是用来启用Spring Security的Web安全支持的。使用这个注解会导入WebSecurityConfiguration,这是Spring Security的核心配置,它会设置一些默认的安全配置。

当你在一个配置类上添加@EnableWebSecurity注解时,它会做以下几件事情:

  1. 配置默认的安全设置:Spring Security会使用一系列默认的设置,例如配置默认的登录页面、默认的登出行为、默认的Session管理策略等。

  2. 启用HTTPSecurity配置 :该注解允许你通过覆盖configure(HttpSecurity http)方法来自定义你的HTTP安全配置。你可以定义哪些URL路径应该被保护,哪些不应该,以及使用哪些认证方法等。

  3. 启用Web安全功能@EnableWebSecurity注解会配置SpringWebMvcImportSelector从而导入SpringWebMvcConfigurer,这个配置器会结合Spring MVC使用,并提供一些基本的Web安全集成。

  4. 注册Spring Security过滤器链 :它会添加FilterChainProxyspringSecurityFilterChain,这是个特殊的过滤器链,它包含了一系列用于保护应用的标准过滤器。

  5. 设置身份验证管理器 :Spring Security提供了身份验证管理器AuthenticationManager的支持。使用@EnableWebSecurity注解会配置一个全局的AuthenticationManager,你可以通过覆盖configure(AuthenticationManagerBuilder auth)方法来自定义用户的认证机制,例如使用内存中的用户、数据库中的用户或LDAP服务器。

  6. 启用方法级别的安全性 :它允许你使用注解(如@PreAuthorize@PostAuthorize@Secured等)来控制方法的访问权限。

  7. 设置安全事件发布 :Spring Security会发布各种安全事件,@EnableWebSecurity注解确保了这些事件可以被监听和处理。

@EnableWebSecurity注解是使用@Import注解来实现的,它会导入WebSecurityConfiguration类以及其他必要的配置类,这些类共同构成了Spring Security的安全配置基础设施。

总之,@EnableWebSecurity不仅仅是启用了Spring Security,它还为开发者提供了一种方便的方式来自定义和扩展默认的安全配置。通过覆盖相关的configure方法,开发者可以实现对应用的精细化安全控制。

相关推荐
Profile排查笔记12 分钟前
指纹浏览器哪个好?从 Profile、代理、权限和自动化能力判断是否适合
前端·人工智能·后端·自动化
用户9385156350731 分钟前
用 AI 结对编程从 0 搭一个"单词后台管理系统":Next.js + Supabase + Drizzle + shadcn/ui 全记录
后端·postgresql·next.js
mqiqe35 分钟前
AgentScope Java 2.0 协议集成全景解析:A2A、AG-UI、Agent Protocol 三大开放协议实战指南
java·开发语言·ui
脉动数据行情41 分钟前
Java 实现台股 TWSE/TPEx 行情采集(个股 + K 线)
java·开发语言·twse·tpex·台股
爱学习的小邓同学1 小时前
Golang --- (1)第一个Golang程序
开发语言·后端·golang
小灰灰搞电子2 小时前
Rust+Slint 实现的“DNA双螺旋”加载动画源码分享
后端·rust·slint·加载动画
面向Google编程2 小时前
向量库不再囤数据:Milvus 3.0 零拷贝直读数据湖
后端
月华路2 小时前
G1 GC 对数组与大对象(Humongous)的处理
java·jvm·算法
liangshanbo12153 小时前
虚拟列表深度面试题整理
java·开发语言·前端
gugucoding3 小时前
59. 【Java】Spring Boot 入门:第一个 Web 应用
java·开发语言·spring boot