案例代码

因为 Spring Security 是一个开源项目,我们强烈建议你check out github上的代码。你将可以看到所有的案例应用以及如何使用最新的 Spring Security API来构建应用。在进行调试的时候,有源码也是非常有帮助的。异常栈的追踪不再是黑盒,你可以直接定位引起问题的那一行代码来查看到底发生了什么。对于一个项目而言,源代码是其终极文档,而且通常是发现事情是如何进行的最简单的地方。

要获得这个项目的源码,使用如下的git命令

git clone https://github.com/spring-projects/spring-security.git

这将会为你提供在本机上访问项目完整历史(包含所有正式发行版和分支)的途径。

Java配置改进

  • 简化UserDetailService的Java配置
  • 简化AuthenticationProvider的Java配置
  • 可通过LogoutConfigurer根据不同情况配置使用不同的LogoutSuccessHandler
  • 可通过SessionManagementConfigurer配置InvalidSessionStrategy 
  • 可通过HttpSecurity.addFilterAt在过滤器链的指定位置上添加一个Filter

Web应用的安全改进

  • 内容安全策略(Content Security Policy (CSP))
  • HTTP公钥固定扩展(HTTP Public Key Pinning (HPKP)
  • CookieCsrfTokenRepository提供对AngularJS的简单的CSRF集成
  • 添加ForwardAuthenticationFailureHandler 和ForwardAuthenticationSuccessHandler
  • AuthenticationPrincipal支持通过表达式属性来转换Authentication.getPrincipal()的返回对象(例如处理一个不可变的自定义用户对象)。

授权提升(Authorization Improvements )

  • Path Variables in Web Security Expressions
  • Method Security Meta Annotations

Crypto模块提升

  • 通过SCryptPasswordEncoder支持SCrypt
  • 通过Pbkdf2PasswordEncoder支持PBKDF2
  • 为使用AES/CBC/PKCS5Padding和AES/GCM/NoPadding算法的BouncyCastle提供新的BytesEncryptor实现。

测试提升

  • @WithAnonymousUser

@WithUserDetails 允许指定UserDetailsService  Bean的名称

  • Test Meta Annotations

通过SecurityMockMvcResultMatchers.withAuthorities模拟一个GrantedAuthority 列表的能力

一般性提升

重新组织案例项目

issues移植到GitHub上。

免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/ 

06-15 13:02