现在我正在尝试为我的spring Boot spring安全项目实现spring security身份验证提供程序。因此,以前我们能够在我们的安全配置文件中扩展WebSecurityConfigurerAdapter,以通过覆盖configure
来自定义http和HttpSecurity http
以及AuthenticationManagerBuilder auth
。
但是现在(SpringSecurity5.7.0)WebSecurityConfigurerAdapter被弃用了,我使用WebSecurityCustomizer方法,如下所示:
@EnableWebSecurity
@Configuration
public class SecurityConfig{
@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
return (web) -> web.ignoring()
.antMatchers("/users/getUser");
}
}
那么,在使用WebSecurityCustomizer时,我如何在我的REST API中使用身份验证提供程序功能?有人能指导我解决这个问题吗?或者请推荐更新的文档供参考?
1条答案
按热度按时间3yhwsihp1#
我不认为
WebSecurityCustomizer
是本例中要使用的bean。我猜您要做的是配置一个SecurityFilterChain
,如下所示:无论如何,不建议在某个端点上禁用Spring Security,如果您不希望在该端点上使用安全性,另一种选择是使用
authorizeHttpRequests.antMatchers("/my-endpoint").permitAll()
。关于
AuthenticationProvider
和AuthenticationManager
,this link可以帮助您解决您可能遇到的问题。全局AuthenticationManager要创建可用于整个应用程序的AuthenticationManager,只需将AuthenticationManager注册为@Bean即可。
本地验证管理器在Spring Security 5.6中,我们引入了方法HttpSecurity#authenticationManager,该方法会覆盖特定SecurityFilterChain的默认验证管理器。下面是一个示例配置,它将自定义的验证管理器设置为默认值: