写点什么

Spring Security 5.0.0 正式发布

  • 2017-12-18
  • 本文字数:1526 字

    阅读完需:约 5 分钟

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

Spring Security 诞生于 2004 年,当时叫作 Acegi,现在由 Pivotal 工程师 Robert Winch 领导开发,Robert 是 _Spring Security_ 和 _Spring 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 资源服务器。

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

可以使用 @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 {
@Override
protected MethodSecurityExpressionHandler createExpressionHandler() {
// ... create and return custom MethodSecurityExpressionHandler ...
return expressionHandler;
}
}

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

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

查看英文原文 Spring Security 5.0.0 Released

2017-12-18 18:004302
用户头像

发布了 322 篇内容, 共 154.7 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

设计模式的艺术 第十一章组合设计模式练习(开发一个界面控件库。界面控件分为两大类:一类是单元控件,例如按钮、文本框等;另一类是容器控件,例如窗体、中间面板等。试用组合模式设计该界面控件库)

代廉洁

设计模式的艺术

腾讯T4整合Spring+Spring MVC+MyBatis+Redis实现

退休的汤姆

Java 程序员 面经 Java工程师 秋招

中小企业集成AI人工智能的窘境

felix

人工智能 中小企业 开放应用模型

Java工程师丨面试必会进程线程问答

陈橘又青

Java 面试 9月月更

软件复杂性的来源与应对

源字节1号

软件开发 前端开发 后端开发 小程序开发

C++后台开发学习路线(已多人拿下腾讯后台开发)

C++后台开发

后台开发 后端开发 C++后台开发 C++开发 腾讯后台开发

《游戏机图鉴》:发展、继承、崩溃、复兴,游戏机的前世今生

图灵社区

科普 游戏机

设计模式的艺术 第十三章外观设计模式练习(为新开发的智能手机控制与管理软件提供一键备份功能。通过该功能可以将原本存储在手机中的通讯录、短信、照片、歌曲等资料一次性地全部复制到移动存储介质(如MMC卡或SD卡)中。实现过程中需要与多个已有的类进行交互)

代廉洁

设计模式的艺术

C++学习------cerrno头文件的作用与源码学习

桑榆

c++ 9月月更

阿里顶配版 Spring 全家桶高级笔记+300道硬核面试题,跪着啃完了

钟奕礼

Java 编程 程序员 架构 java面试

首次发布!Java面试八股文让569人成功进入大厂,堪称2022最强面试八股文核心知识版!

退休的汤姆

Java 程序员 面经 秋招 Java八股文

小六六学Netty系列之Java BIO

自然

网络 9月月更 neety

小六六学Netty系列之Java NIO(一)

自然

网络 9月月更 neety

深入思考Schema管理的几个基本问题

HackMSF

DPDK技术学习路线总结,虚拟化专家之路

C++后台开发

后台开发 DPDK VPP OvS DPDK开发

数据存储与物联网

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

如果你是Java程序员,你会选择Cloud Studio进行云端开发,放弃IDEA吗?

wljslmz

Java Cloud Studio 9月月更

如何成为资深的测试专家

穿过生命散发芬芳

测试 9月月更

什么是 SAP Business Function

汪子熙

SAP abap Netweaver 业务流程驱动 9月月更

分布式技术难学?谷歌大神首发纯手撸ZK+Dubbo笔记,网友看完直呼NB

收到请回复

Java zookeeper 架构 分布式 语言 & 开发

完美!华为大佬手码20w字Redis全栈小册,原来Redis性能可压榨到极致

Java全栈架构师

数据库 redis 程序员 面试 后端

【大话 C 语言】春眠不觉晓,函数知多少?

Albert Edison

递归 C语言 函数 开发语言 9月月更

常见的网络安全攻击及防御技术概述

阿泽🧸

网络安全 9月月更

秋招国内大厂最牛的Java面试八股文合集(全彩版),不接受反驳

退休的汤姆

Java 程序员 面经 Java工程师 秋招

设计模式的艺术 第十二章装饰设计模式练习(开发一个数据加密模块,可以对字符串进行加密。最简单的加密算法通过对字母移位来实现,同时提供了稍复杂的逆向输出加密和更高级的求模加密。用户先用最简单的算法加密,如果觉得不够,可以使用其他算法进行二次加密和三次加密)

代廉洁

设计模式的艺术

数据治理的内核:元数据管理

小鲸数据

数据治理 数字化 元数据 元数据管理 元数据管理平台

费时3个月啃烂了这份Redis技术笔记,我成功上岸进了字节

收到请回复

redis 架构 语言 & 开发 Java core redis 底层原理

重学网络系列之(我的名字叫IP)

自然

网络 9月月更

在世界人工智能大会,看京东AI向产业奔涌

脑极体

Spring Security 5.0.0正式发布_Java_Victor Grazi_InfoQ精选文章