Spring 安全框架 Spring Security 5.1 GA 现已正式发布 !
POM
<dependencies> <!-- ... other dependency elements ... --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>5.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>5.1.0.RELEASE</version> </dependency> </dependencies>
该版本关闭了 50+ 的 issue ,此外,Spring Security 5.1 也提供了大量的新特性,值得关注的有:
通过 UserDetailsPasswordService 对密码存储进行自动升级
OAuth 2.0 Client
可自定义的授权和 Token 请求(Authorize and Token requests)
支持 authorization_code
grant
支持 client_credentials
grant
OAuth 2.0 资源服务器 - 支持 JWT-encoded bearer tokens
添加 OAuth2 WebClient 集成
HTTP Firewall 可防止篡改 HTTP 动词和跨站点跟踪
ExceptionTranslationFilter 支持通过 RequestMatcher 选择 AccessDeniedHandler
CSRF 支持排除某些请求
添加对 特性策略(Feature Policy) 的支持
添加 @Transient authentication tokens
默认登录页面的现代化外观
通过 ReactiveUserDetailsPasswordService 对密码存储进行自动升级
添加对 OAuth2 的支持
添加对 OAuth2 Client 的支持
添加对 OAuth2 Resource Server 的支持
添加对 OAuth2 WebClient 的集成
@WithUserDetails
现在可以和 ReactiveUserDetailsService 搭配使用
添加对 CORS 的支持
添加对以下 HTTP headers 的支持
Content Security Policy
Feature Policy
Referrer Policy
重定向至 HTTPS
@AuthenticationPrincipal 的改进
支持对 beans 的解析
支持解析 errorOnInvalidType
Jackson 支持 和 BadCredentialsException 一起搭配使用
@WithMockUser
支持
在测试中设置 SecurityContext 时进行自定义。例如, @WithMockUser(setupBefore = TestExecutionEvent.TEST_EXECUTION)
将在 JUnit 的 @Before 之后和测试执行之前对用户进行设置
可以使用自定义环境变量配置 LDAP 身份验证
X.509 身份验证 支持将主体(principal)派生为策略
详情请查看 https://docs.spring.io/spring-security/site/docs/5.1.0.RELEASE/reference/htmlsingle/#new
Spring Security 的前身是Acegi Security,是 Spring 项目组中用来提供安全认证服务的框架。
Spring Security 为基于 J2EE 企业应用软件提供了全面安全服务。特别是使用领先的 J2EE 解决方案-Spring 框架开发的企业软件项目。人们使用 Spring Security 有很多种原因,不过通常吸引他们的是在 J2EE Servlet 规范或 EJB 规范中找不到典型企业应用场景的解决方案。