博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Security 5.0.0正式发布
阅读量:6592 次
发布时间:2019-06-24

本文共 2223 字,大约阅读时间需要 7 分钟。

Pivotal正式发布Spring Security 5.0.0,是2015年3月发布4.0.0版本以来的第一个大版本。

\\

Spring Security诞生于2004年,当时叫作Acegi,现在由Pivotal工程师领导开发,Robert是Spring SecuritySpring Security 3.1的合著者。5.0.0版本包含了400多项改进和问题修复,包括支持OAuth 2.0、支持Spring WebFlux、可以使用Reactor的StepVerifier进行测试。

\\

InfoQ就Spring Security 5.0.0版本的发布和未来计划问题采访了Robert Winch。

\\

InfoQ:新版本的更新站点看起来很稳定。你能概括一下这一版本的内容吗?

\\
Winch:Spring Security 5.0.0的主要亮点在于它只需要最小化的JDK 8、反应式安全特性、OAuth 2.0(OIDC)和现代密码存储。
\\

InfoQ:你们是怎么想到现代密码存储这个主意的?又是如何实现的?

\\
Winch:在Spring Security 5.0.0之前,密码是明文保存,十分不安全。因为这一次发布的是大版本,所以我们决定使用更安全的密码存储方式。 我们有幸与密码存储专家John Steven合作,他是OWASP密码存储手册的主要作者。Spring Security现在默认提供的是最新的密码存储方式。当然,我们也可以使用其他方式来存储密码。
\\

InfoQ:Spring让我印象深刻的地方在于,它总是能够急我们之所急,为我们提供我们缺失的功能。你们是如何决定推出哪些特性的?

\\
Winch:我们关注社区进展,为呼声较高的问题制定解决方案。结果就是要使用最小化的JDK 8,并通过Reactor项目来支持反应式编程。
\\

InfoQ:你们打算加快Spring Security的发布速度吗?就像Juergen Hoeller所说的那样,在更短的时间周期内交付已经准备好的特性?

\\
Winch:是的。Spring Security尝试跟上Spring框架的脚步,确保为Spring框架提供安全保护。
\\

InfoQ:下一个版本的计划是什么?

\\
Winch:下一版本,我们计划把精力集中在完善反应式和OAuth上面。我们也会提供一些工具用于迁移现有的密码。我们也希望能够发布初始版本的OAuth资源服务器。
\\

现在让我们来看看增强的方法级别的安全(示例来自)。

\\

可以使用@EnableGlobalMethodSecurity来启用基于注解的安全,只要这个类也使用了@Configuration。例如:

\\
\@Configuration\@EnableGlobalMethodSecurity(securedEnabled = true)\public class MethodSecurityConfig {\// ...\}
\\

然后就可以实现方法级别的安全:

\\
\public interface BankService {\\@Secured(\"IS_AUTHENTICATED_ANONYMOUSLY\")\public Account readAccount(Long id);\\@Secured(\"IS_AUTHENTICATED_ANONYMOUSLY\")\public Account[] findAccounts();\\@Secured(\"ROLE_TELLER\")\public Account post(Account account, double amount);\}
\\

有时候可能需要比GlobalMethodSecurity更灵活的方式,那么可以通过扩展GlobalMethodSecurityConfiguration来实现自定义安全策略,并在这个类上面加上@EnableGlobalMethodSecurity:

\\
\@EnableGlobalMethodSecurity(prePostEnabled = true)\public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {\\t@Override\\tprotected MethodSecurityExpressionHandler createExpressionHandler() {\\t\t// ... create and return custom MethodSecurityExpressionHandler ...\\t\treturn expressionHandler;\\t}\}
\\

Reactor项目的反应式流有一个特性,它支持将等待中的线程分配给新的任务作业,这就给实现ThreadLocal类型映射带来了新的挑战。Reactor为此提供了,它是一种反应式的ThreadLocal map。

\\

在5.0.0版本里,可以通过ReactiveSecurityContextHolder.getContext()方法访问反应式Context,并在方法调用过程中使用token(以及其他应用程序相关数据)。

\\

查看英文原文

转载地址:http://yzuio.baihongyu.com/

你可能感兴趣的文章
开启 URL 重写
查看>>
Journey源码分析二:整体启动流程
查看>>
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
查看>>
七、MySQL中的字符集 - 系统的撸一遍MySQL
查看>>
centos7的php5.4竟然不支持原生的mysql
查看>>
使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
查看>>
Maven依赖Scope标签用法
查看>>
ajax加载数据到页面无法打印的解决办法
查看>>
js 验证中文
查看>>
MySQL给查询结果添加一表表示行号或名次(1)
查看>>
Linux下运行java DES AES加解密
查看>>
DataNode 运行状况
查看>>
牛津词典 2018 年度词汇 ——「有毒」!
查看>>
XIB的是用
查看>>
Learning Data Structure_2_线性表、栈和队列
查看>>
驱动外置+原版安装方式『XLOS_Windows8_Pro_X86纯净版_V1.0』
查看>>
Android Arcface人脸识别sdk使用工具类
查看>>
android studio单个工程文件的代理设置
查看>>
Agent admitted failure to sign using the key
查看>>
grep 应用
查看>>