Spring Security 5.1.0.RC2 发布

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

我代表社区很高兴地宣布 Spring Security 5.1.0.RC2 发布。此版本关闭了 50 多个工单

一如既往,我们期待您的反馈!您可以在下方找到重点内容

目录

简化的 OAuth2 DSL

起初,Spring Security 的 DSL 有两个 oauth

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 与扩展或偏离规范的提供者一起工作。

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

资源服务器 Claims 映射

同样地,资源服务器提供了自定义从传入 JWT 中解析的 claims 集合的支持。当应用程序需要添加或移除 claims 或需要以自定义方式解析 claims 时,这非常有用。

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

更多提供者配置元数据可用

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

现在,ClientRegistration 附带了 getConfigurationMetadata 方法,该方法与针对特定属性的方法并行,并返回提供者属性的整个 map。

RestOperations 支持

此版本还提供了对HTTP 请求的完全自定义支持,用于与各种端点通信。

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

其他改进

X.509 Principal 提取器

还增加了对通过策略派生 X.509 principal 的支持。

LDAP 自定义环境变量

并增加了对配置用于创建 LdapContext 的自定义环境变量的支持。

WebFlux 增强功能

OAuth2 资源服务器

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

在 Spring Security WebFlux 中,按请求类型设置认证管理器更为典型。因此,在此版本中,WebFlux 提供了资源服务器的认证管理器配置

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

这在应用程序需要将 Jwt 自定义转换为一组授予权限的情况下非常有用。

OAuth2 客户端

在 WebFlux 中,@RegisteredOAuth2AuthorizedClient 注解现在支持 client_credentials 授权类型

重定向到 Https

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

依赖更新

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

项目网站 | 参考文档 | 帮助

获取 Spring 时事通讯

订阅 Spring 时事通讯,保持联系

订阅

先行一步

VMware 提供培训和认证,助您加速发展。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部