领先一步
VMware 提供培训和认证,助您快速提升技能。
了解更多我代表社区很高兴地宣布 Spring Security 5.1.0.RC1 的发布。此版本修复了50多个问题。
与往常一样,我们期待收到您的反馈!您可以在下面找到亮点
资源服务器现在可以通过任何支持Open Id 提供程序配置的发行者端点进行配置
@Bean
JwtDecoder jwtDecoder() {
return JwtDecoders.createDefaultFromIssuer("https://issuer-endpoint");
}
用户可以通过公开 JwtDecoder
bean 来添加自己的验证规则以应用于 Jwt
@Bean
JwtDecoder jwtDecoder() {
String jwkSetUri = "https://issuer-endpoint/.well-known/jwks.json";
NimbusJwtDecoderJwkSupport jwtDecoder =
new NimbusJwkDecoderJwkSupport(jwkSetUri);
OAuth2TokenValidator<Jwt> validator =
new DelegatingOAuth2TokenValidator(
JwtValidators.createDefault(),
new MyCustomValidator());
jwtDecoder.setJwtValidator(validator);
return jwtDecoder;
}
用户可以自定义如何从 Jwt
中派生 GrantedAuthority
@Bean
JwtDecoder jwtDecoder() {
String jwkSetUri = "https://issuer-endpoint/.well-known/jwks.json";
NimbusJwtDecoderJwkSupport jwtDecoder =
new NimbusJwkDecoderJwkSupport(jwkSetUri);
JwtAuthenticationConverter jwtAuthenticationConverter =
new JwtAuthenticationConverter() {
protected Collection<GrantedAuthority> extractAuthorities(Jwt jwt) {
return Arrays.asList(new SimpleGrantedAuthority("app:read"));
}
};
jwtDecoder.setJwtAuthenticationConverter(jwtAuthenticationConverter);
return jwtDecoder;
}
已添加对客户端凭据授权类型的基本支持。
已添加对Feature-Policy的基本支持
http
.headers()
.featurePolicy("geolocation 'none'");
已添加对基于 Reactive 的 OAuth2 资源服务器的基本支持。请参见oauth2resourceserver-webflux
已添加对基于 Reactive 的授权码授权流程的基本支持。请参见authcodegrant-webflux
已添加对自定义发送到授权服务器的认证请求的支持。这在例如授权服务器需要发送自定义参数时非常方便。在多租户场景中也很有用,在这些场景中,请求的某些元素(如主机名)可能会更改向授权服务器发送请求的方式。
已添加对自定义请求之间授权客户端持久性的支持
http
.oauth2()
.client()
.authorizedClientRepository(new MyCookieBasedClientRepository());
已向 WebFlux 添加对以下安全头信息的支持
内容安全策略 (Content-Security-Policy)
Referrer 策略 (Referrer-Policy)
功能策略 (Feature-Policy)
已向 Webflux 添加对 CORS 的支持。
我们已将依赖项更新到最新版本,以确保传递依赖项是最新的。