Spring Security 5.0.0 M2 已发布

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

我谨代表社区,很高兴地宣布 Spring Security 5.0.0 M2 的发布。本次发布包含了 bug 修复、新功能,并且基于 Spring Framework 5.0.0 RC2。

在 Spring Security samples 中可以找到一个使用 Spring Security 来保护 Spring WebFlux 应用程序的完整示例,位于 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 社区所有即将举行的活动。

查看所有