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 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 社区中所有即将举行的活动。

查看全部