案例代码
因为 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/