Spring Security 4 新特性

Spring Security 4.0 release解决了175+的 tickets

功能

下面Spring Security 4.0的新功能的亮点:

  • Web Socket 支持
  • Test 支持
  • Spring Data 集成
  • CSRF Token 参数解析器
  • 更多安全默认值
  • 角色方法不需要包含 ROLE_ 例如 之前需要在XML配置中包含以下内容:
  1. <intercept-url pattern="/**" access="hasRole('ROLE_USER')"/>

现在你可以选择忽略ROLE_ 前缀. 我们这样做是为了消除重复. 具体地,由于hasRole表达式已将值定义为一个角色,如果它不存在会自动添加前缀。下面的配置和前面的配置效果一样:

  1. <intercept-url pattern="/**" access="hasRole('USER')"/>

类似的下面的配置

  1. @PreAuthorize("hasRole('ROLE_USER')")

和下面更简洁的配置是相同的

  1. @PreAuthorize("hasRole('USER')")

从 3.x 迁移到 4.x

Spring Security为了应对应用漏洞的发展,作为一个主要版本,Spring Security团队趁机做出一些非被动的变化,这集中在:

  • 确保默认配置下更安全
  • 尽量避免信息泄露
  • 移除废弃的API

查看完成的从Spring Security 3到4 请参考以下指南:

Migrating from Spring Security 3.x to 4.x (XML Configuration)
Migrating from Spring Security 3.x to 4.x (Java Configuration)