领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我谨代表社区,很高兴地宣布 Spring Security 5.0.0 M2 的发布。本次发布包含了 bug 修复、新功能,并且基于 Spring Framework 5.0.0 RC2。
在 Spring Security samples 中可以找到一个使用 Spring Security 来保护 Spring WebFlux 应用程序的完整示例,位于 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();