Spring Security 5.1.0.RC2 发布

发布 | Josh Cummings | 2018年9月10日 | ...

我代表社区很高兴地宣布 Spring Security 5.1.0.RC2 发布。此版本修复了 50 多个问题

一如既往,我们期待收到您的 反馈!您可以在下面找到亮点

目录

简化的 OAuth2 DSL

最初,Spring Security DSL 有两个 oauths

http
    .oauth2Login()...

http
    .oauth2()
        .client()...

这有一定的道理,因为一个是身份验证机制,例如 formLoginopenidLogin,而其他——clientresourceServerauthorizationServer——更像是 OAuth 2.0 的角色。

但最终,这种分离感觉像是多余的额外输入,因此我们决定扁平化层次结构,这意味着从本版本开始,我们现在拥有

http
    .oauth2Login()...
    .oauth2Client()...
    .oauth2ResourceServer()

此 DSL 重构未带来任何功能或特性更改,只是减少了您的输入量。

WebClient 扩展

团队一直在努力开发 WebClient,我们很高兴地宣布为 Servlet 和 WebFlux 应用程序推出一些新的 OAuth 2.0 WebClient 扩展。这些扩展使 OAuth 2.0 权限能够轻松地在机器之间无缝传输。

请在 OAuth 2.0 Web Client 主问题 中阅读所有详细信息。

Servlet 增强

OAuth2

令牌请求配置

OAuth 2.0 旅程的第一部分是规范合规性。此下一个版本引入了更多支持,用于配置 Spring Security 以与扩展或偏离规范的提供程序一起使用。

例如,现在可以 自定义客户端向授权服务器发出的令牌请求

资源服务器声明映射

同样,资源服务器随附对 自定义从传入 JWT 解析的声明集 的支持。当应用程序需要添加或删除声明或需要以自定义方式解析声明时,这非常方便

NimbusJwtDecoderJwkSupport decoder = // ...
decoder.setClaimSetConverter(
    MappedJwtClaimSetConverter
        .withDefaults("custom-date", this::convertToInstant));

提供更多提供程序配置元数据

规范合规性之旅也在继续。在此版本中,添加了对收集和提供 从 OIDC 提供程序配置端点返回的任何元数据 的支持。

现在,ClientRegistration 带有 getConfigurationMetadata,它与针对特定属性的方法并排放置,并返回提供程序属性的整个映射。

RestOperations 支持

此版本还随附对 完全自定义 HTTP 请求 到各种 端点 的支持。

这对于配置超时、发现、缓存以及在与授权服务器通信时充分利用 RestTemplate 的复杂性非常方便。

其他改进

X.509 主体提取器

还添加了对 通过策略派生 X.509 主体 的支持。

LDAP 自定义环境变量

并且添加了对配置的支持 自定义环境变量,这些变量用于通知 LdapContext 的创建

WebFlux 增强功能

OAuth2 资源服务器

最初为基于 Servlet 的资源服务器发布的几个功能已在 RC2 中添加到 WebFlux 端。 响应式 功能 类似,但有一个小的但重要的例外。

在 Spring Security WebFlux 中,每个请求类型通常都有一个身份验证管理器。因此,在此版本中,WebFlux 附带了 资源服务器的身份验证管理器配置

http
    .oauth2ResourceServer()
        .authenticationManager(customAuthenticationManager())

这在应用程序需要对 Jwt 进行一些自定义转换以获得一组授予的权限的情况下很有帮助。

OAuth2 客户端

@RegisteredOAuth2AuthorizedClient 注释现在支持 WebFlux 中的 client_credentials 授权

重定向到 Https

最后但并非最不重要的一点是,https 重定向支持 已添加到 WebFlux 中,可以通过 http.redirectToHttps() 或直接通过 HttpsRedirectWebFilter 访问。

依赖项更新

并且我们已将我们的依赖项更新到最新版本,以确保我们的传递依赖项是最新的。

项目站点 | 参考 | 帮助

获取 Spring 时事通讯

与 Spring 时事通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看全部