Spring Security 4 新增特性
1.概述
a) 特性
以下是Spring Security 4.0的新特性
- Web Socket 支持
- 测试支持
- 整合Spring Data
- CSRF令牌参数解析
- 更安全的默认设置
- role权限不再必须使用ROLE_前缀,在之前的版本必须像下面这样在XML文件里进行配置:
<intercept-url pattern="/**" access="hasRole('ROLE_USER')"/>
现在,我们可以选择省略掉ROLE_前缀。具体而言,无论ROLE_是否存在,表达式hasRole已经定义了一个作为role的值。我们可以像下面这样配置(效果和之前一样):
<intercept-url pattern="/**" access="hasRole('USER')"/>
类似的,也可以像下面一样配置:
@PreAuthorize("hasRole('ROLE_USER')")
@PreAuthorize("hasRole('USER')")
- 添加了更多集成的Tests示例
- 不赞成使用 @EnableWebMvcSecurity。在更新后的最低Spring版本,我们仍然可以使用它,但同时也允许重写它。
b) 从3.x过渡到4.x
作为一个新版本,Spring Security团队做了主要的更新:
以下是更新的完整详情,或者在JIRA中查看变动:
- Migrating from Spring Security 3.x to 4.x (XML Configuration)
- Migrating from Spring Security 3.x to 4.x (Java Configuration)
2.XML配置的变化(Java注解的更新也差不多)
a)例子迁移
可以在github上查看
b)更新到Spring 4.1.x
Spring Security 4需要Spring 4。而Spring Security 3.2.x 可以在Spring 3.2.x and Spring 4上运作。
详细介绍参见
c)过时
以下列出了一些官方不再建议使用的配置,详情可以参考这里:
- Related Links
- spring-security-acl
- spring-security-cas
- spring-security-config
- spring-security-core
- spring-security-taglibs
- spring-security-web
d)更新Spring Security
Maven:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-bom</artifactId>
<version>4.0.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
不要忘记更新依赖
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
e)默认命名空间的改变
详情参考这里:
- Related Links
- Migrate <http>
- Migrating <form-login>
- Migrating <logout>
- Migrating <openid-login>
- Migrating <headers>
- Migrating <csrf>
- Migrating <remember-me>
- Migrating <filter-security-metadata-source>
f)默认Filter URLs的改变
g)配置头的改变
h)自动的ROLE_前缀
Spring Security 4 新增特性的更多相关文章
- Spring Security 实战干货:分布式对象SharedObject
1. 前言 在上一篇我们对AuthenticationManager的初始化的细节进行了分析,其中里面有一段代码引起了不少同学的注意: ApplicationContext context = htt ...
- Spring Security研究(2)-高级web特性
1, 添加 HTTP/HTTPS 信道安全 <http> <intercept-url pattern="/secure/**" access="ROL ...
- Spring Security 入门详解(转)
1.Spring Security介绍 Spring Security是基于spring的应用程序提供声明式安全保护的安全性框架,它提供了完整的安全性解决方案,能够在web请求级别和方法调用级别 处理 ...
- Spring Security(17)——基于方法的权限控制
目录 1.1 intercept-methods定义方法权限控制 1.2 使用pointcut定义方法权限控制 1.3 使用注解定义方法权限控制 1.3.1 JSR-25 ...
- Spring Cloud Greenwich 新特性和F升级分享
2019.01.23 期待已久的Spring Cloud Greenwich 发布了release版本,作为我们团队也第一时间把RC版本替换为release,以下为总结,希望对你使用Spring Cl ...
- Spring Security 5.0.x 参考手册 【翻译自官方GIT-2018.06.12】
源码请移步至:https://github.com/aquariuspj/spring-security/tree/translator/docs/manual/src/docs/asciidoc 版 ...
- Spring Security教程之基于方法的权限控制(十二)
目录 1.1 intercept-methods定义方法权限控制 1.2 使用pointcut定义方法权限控制 1.3 使用注解定义方法权限控制 1.3.1 JSR-25 ...
- Java安全框架(一)Spring Security
Java安全框架(一)Spring Security 文章主要分三部分 1.Spring Security的架构及核心组件:(1)认证:(2)权限拦截:(3)数据库管理:(4)权限缓存:(5)自定 ...
- 【Spring Cloud & Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权
一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证授权.鉴权的逻辑,结合 ...
随机推荐
- MyBatis Generator代码自动生成工具的使用
MyBatis Generator MyBatis Generator有三种使用方式,分别是maven插件形式.命令行形式以及eclipse插件形式.我在这里使用的是命令行的形式(主要是命令行形式比较 ...
- Windows下memcached的安装配置
下载windows 32位或64位 memcached 下载 memcached_dll 1.将第一个包解压放某个盘下面,比如在c:\memcached.2.在终端(也即cmd命令界面)下输入 'c: ...
- window开启remote desktop服务
确定自己的PC支持远程桌面 1 先确定被遥控的电脑的系统必须是Professional或Enterprise以上版本,家庭版不支持远程桌面.以Win8.1(7和8同理)为例,依次打开控制面板→系统 ...
- 将图标LOGO之类的图形图像转换成字体调用方法大全
借鉴百度对此标题的评价: 使用字体图标的优势 字体图标除了图像清晰度之外,比位图还有哪些优势呢. 适用性:一个图标字体比一系列的图像(特别是在Retina屏中使用双倍大小的图像)要小.一旦图标字体加载 ...
- wpf 中英文版编写
var uriC = new Uri("/YTManage.Language;component/Chinese.xaml", UriKind.Relative); // 得到资源 ...
- memcached+狀態模式+工廠方法使用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Python 中的装饰器
说到装饰器是我们每个学Python人中的心痛. 装饰器作用:是用来装饰其他函数的,为其他函数添加新功能. 原则:1.不能改变被修饰函数的源代码. 2.不能修改被修饰函数的调用方式. 学装饰器前还需要了 ...
- C语言指针的那些坑
那些年把我们坑惨的指针 一.引言 当我们使用c语言的时候,不可避免的就得用到指针,然后对于刚刚接触C语言的猿兄们,可能会有点不适应,特别是刚刚从python等离硬件很远的语言转过来的. 下面我为大家总 ...
- [Python] Codecombat 攻略 Sarven 沙漠 (1-43关)截止至30关
首页:https://cn.codecombat.com/play语言:Python 第二界面:Sarven沙漠(43关)时间:4-11小时内容:算术运算,计数器,while循环,break(跳出循环 ...
- base64减少图片请求
1. 使用base64减少 a) 2. 页面解析 CSS 生成的 CSSOM 时间增加 Base64 跟 CSS 混在一起,大大增加了浏览器需要解析CSS树的耗时.其实解析CSS ...