领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多我代表社区,很高兴地宣布 Spring Security 5.0.0 M2 的发布。此版本包含错误修复、新功能,并基于 Spring Framework 5.0.0 RC2。
使用 Spring Security 保护 Spring WebFlux 应用程序的完整示例可以在 Spring Security 示例中找到:hellowebflux 和 hellowebfluxfn。
此版本的亮点包括:
现在非常容易设置一个最小的响应式安全配置。添加@EnableWebFluxSecurity
并提供一个UserDetailsRepository
@EnableWebFluxSecurity
public class SecurityConfig {
@Bean
public UserDetailsRepository userDetailsRepository() {
return new MapUserDetailsRepository(User.withUsername("user")
.password("password")
.roles("USER")
.build()
);
}
}
我们添加了UserDetailsManagerResourceFactoryBean
,它提供了一种简单的方法,可以使用属性文件创建一个UserDetailsRepository
。例如:
@Bean
public UserDetailsRepositoryResourceFactoryBean userDetailsService() {
return UserDetailsRepositoryResourceFactoryBean
.fromResourceLocation("classpath:users.properties");
}
和users.properties
user=password,ROLE_USER
admin=password,ROLE_USER,ROLE_ADMIN
注意
对于非响应式应用程序,有一个新的UserDetailsManagerResourceFactoryBean
可以从属性文件创建一个InMemoryUserDetailsManager
此版本还增加了对WebTestClient
的支持。例如,您可以使用以下方法以测试用户身份运行:
ExchangeMutatorWebFilter exchangeMutator = new ExchangeMutatorWebFilter();
WebTestClient mockRest = WebTestClient.bindToApplicationContext(this.context)
.webFilter(exchangeMutator) // add the exchangeMutator
.build();
mockRest
// run only this request with a mocked user
.filter(exchangeMutator.perClient(withUser()))
.get()
.uri("/principal")
.exchange()
.expectStatus().isOk();