首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Security 5.1.0.M2 发布,Spring 安全框架

Spring Security 5.1.0.M2 已发布,该版本关闭了超过 100 个 issue。下面说说值得关注的更新:

OAuth2

OAuth2 Resource Server

添加了对 OAuth2?资源服务器的基本支持。见?oauth2resourceserver

Authorization Code Flow

用户现在可以使用OAuth 2.0 Authorization Code grant 获取访问令牌(access token)。请查看?authcodegrant?示例。

支持 WebClient 和 OAuth2

现在内置了对 OAuth2 和 WebClient 的支持,该支持将允许:

  • 将访问令牌添加到请求中
  • 访问令牌过期时自动刷新
  • 解析要使用的访问令牌

例如,在 servlet 环境中,你可以配置一个如下所示的 Bean:

代码语言:javascript
复制
@Bean
WebClient?webClient(OAuth2AuthorizedClientRepository?repository)?{
????ServletOAuth2AuthorizedClientExchangeFilterFunction?filter?=
????????new?ServletOAuth2AuthorizedClientExchangeFilterFunction(repository);
????return?WebClient.builder()
????????.filter(new?OAuth2AuthorizedClientExchangeFilterFunction())
????????.apply(filter.oauth2Configuration())
????????.build();
?}

现在,你可以通过多种不同方式添加 OAuth 令牌。如果需要,可以使用 Spring MVC 支持来解析 OAuth2AuthorizedClient。如果授权服务器返回已刷新的令牌并且访问令牌即将过期,则 Spring Security 将透明地更新访问令牌并提交已更新的访问令牌。

代码语言:javascript
复制
@GetMapping("/users")
Mono<String>?users(@RegisteredOAuth2AuthorizedClient("client-id")
????????OAuth2AuthorizedClient?authorizedClient)?{
????return?this.webClient.get()
????????.uri("https://api.example.com/user")
????????.attributes(oauth2AuthorizedClient(authorizedClient))
????????.retrieve()
????????.bodyToMono(String.class);
}

你可以通过 WebClient 来解析访问令牌,例如

代码语言:javascript
复制
Mono<String>?users()?{
????return?this.webClient.get()
????????.uri("https://api.example.com/user")
????????.attributes(clientRegistrationId("client-id"))
????????.retrieve()
????????.bodyToMono(String.class);
}

如果使用 OAuth2 Log In 或 OIDC 进行身份验证,则可以应用默认的访问令牌而无需用户交互。

代码语言:javascript
复制
Mono<String>?users()?{
????//?if?Authenticated?with?OIDC
????//?OAuth2?Log?In?use?the?access?token?associated?to?log?in
????return?this.webClient.get()
????????.uri("https://api.example.com/user")
????????.retrieve()
????????.bodyToMono(String.class);
}

WebFlux OAuth2 Log In Supports OIDC

WebFlux 应用程序现在可以使用 OAuth2 和 OIDC 进行身份验证。有关详细示例,请查看 oauth2login-webflux

配置改进

改进默认登录页面,更现代化

默认登录页面实用了 HTML5,变得更现代化,看起来更具视觉吸引力。

默认注销页面

由于添加了 CSRF 注销保护,因此默认应用程序无法注销。现在,如果正在使用默认登录页面(例如没有配置登录页面),那么还会有一个默认的注销页面,它显示了一个注销表单。

简化 RequestCache 配置

用户现在可以配置默认的 RequestCache,用于将其暴露给@Bean。

本次更新内容较多,详情请查看发布说明。 源码下载 >>>?https://github.com/spring-projects/spring-security/releases/tag/5.1.0.M2

  • 发表于:
  • 原文链接https://www.oschina.net/news/98528/spring-security-5-1-0-m2-released
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com