手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Spring Security 5.0.0正式发布

[日期:2017-12-19] 来源:infoq.com  作者:Victor Grazi ,译者 薛命灯 [字体: ]

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

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

Spring Security 5.0.0版本的发布和未来计划。

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

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

结果就是要使用最小化的JDK 8,并通过Reactor项目来支持反应式编程。

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

下一版本,计划把精力集中在完善反应式和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

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-12/149593.htm

linux
相关资讯       Spring Security 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款