进入 SpringBoot2.7,有一个重要的类过期了
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
松哥正在录制TienChin项目视频,这个视频系列基于Spring Boot和Vue3技术栈,将涉及多种技术,目标是完成一个完成率超过90%的项目。
最近有小伙伴在SpringBoot2.7版本中发现了一个常用的类WebSecurityConfigurerAdapter被标记为过时。尽管过期的类仍可以使用,但Spring Security建议使用新的方法进行配置。以前,我们通过继承WebSecurityConfigurerAdapter来配置Spring Security,包括过滤器链(configure(HttpSecurity))和路径放行规则(configure(WebSecurity))。但现在,用于配置过滤器链的新方法是自定义SecurityFilterChain Bean,而配置WebSecurity的新方法是通过WebSecurityCustomizer Bean。
通过一个例子,松哥展示了如何在Spring Boot 2.7中使用这些新配置。首先,创建一个新的Spring Boot工程,添加Web和Spring Security依赖。然后,提供一个简单的测试接口HelloController,该接口默认需要登陆后才能访问。
为了使用自定义用户而非系统默认用户,可以注册一个UserDetailsService实例到Spring容器。如果用户数据存储在数据库中,需要提供UserDetailsService接口的实现类并注入到Spring容器。松哥还展示了如何让某个接口(如/hello)能够匿名访问且不经过Spring Security过滤器链,这通过注册WebSecurityCustomizer Bean并在其中配置ignoring规则来实现。
关于过滤器链的定制,可以通过提供SecurityFilterChain Bean来进行配置。SecurityFilterChain是一个接口,其实现类DefaultSecurityFilterChain支持定义拦截规则和过滤器链。此外,还可以通过配置HttpSecurity来实现与以前相似的配置方式,包括认证请求、表单登录以及禁用CSRF保护。
松哥认为新的配置方法更直观,更易于理解Spring Security底层的过滤器链工作机制,并鼓励小伙伴们尝试Spring Boot 2.7的新特性。
想要了解更多内容?