Spring Security 5.0.0 M2 发布

发布 | Rob Winch | 2017年6月16日 | ...

我代表社区,很高兴地宣布 Spring Security 5.0.0 M2 的发布。此版本包含错误修复、新功能,并基于 Spring Framework 5.0.0 RC2。

使用 Spring Security 保护 Spring WebFlux 应用程序的完整示例可以在 Spring Security 示例中找到:hellowebfluxhellowebfluxfn

此版本的亮点包括:

简化的响应式安全配置

现在非常容易设置一个最小的响应式安全配置。添加@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 支持

此版本还增加了对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();

项目站点 | 参考文档 | 指南 | 帮助

获取 Spring 新闻通讯

关注 Spring 新闻通讯

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看全部