Spring Security与Java应用安全保护

管理员账号

2019-09-06

Spring Security是一个强大且高度可定制的安全框架,致力于为Java应用提供身份认证和授权。第一本Spring Security中文版图书《Spring Security实战》现已上市。

Spring Security 的前身是Acegi Security,在被收纳为Spring 子项目后正式更名为SpringSecurity。从5.1.3.RELEASE 版本开始,Spring Security加入了原生OAuth2.0 框架,支持更加现代化的密码加密方式。可以预见,在Java 应用安全领域,Spring Security 会成为被首先推崇的解决方案,就像我们看到服务器就会联想到Linux 一样顺理成章。

应用程序的安全性通常体现在两个方面:认证和授权。

认证是确认某主体在某系统中是否合法、可用的过程。这里的主体既可以是登录系统的用户,也可以是接入的设备或者其他系统。

授权是指当主体通过认证之后,是否允许其执行某项操作的过程。

这些概念并非Spring Security 独有,而是应用安全的基本关注点。Spring Security 可以帮助我们更便捷地完成认证和授权。

认证

Spring Security 支持广泛的认证技术,这些认证技术大多由第三方或相关标准组织开发。

Spring Security 已经集成的认证技术如下:

◎ HTTP BASIC authentication headers:一个基于IETF RFC 的标准。

◎ HTTP Digest authentication headers:一个基于IETF RFC 的标准。

◎ HTTP X.509 client certificate exchange:一个基于IETF RFC 的标准。

◎ LDAP:一种常见的跨平台身份验证方式。

◎ Form-based authentication:用于简单的用户界面需求。

◎ OpenID authentication:一种去中心化的身份认证方式。

◎ Authentication based on pre-established request headers:类似于Computer Associates SiteMinder,一种用户身份验证及授权的集中式安全基础方案。

◎ Jasig Central Authentication Service:单点登录方案。

◎ Transparent authentication context propagation for Remote Method Invocation (RMI) and HttpInvoker:一个Spring 远程调用协议。

◎ Automatic “remember-me” authentication:允许在指定到期时间前自行重新登录系统。

◎ Anonymous authentication:允许匿名用户使用特定的身份安全访问资源。

◎ Run-as authentication:允许在一个会话中变换用户身份的机制。

◎ Java Authentication and Authorization Service:JAAS,Java 验证和授权API。

◎ Java EE container authentication:允许系统继续使用容器管理这种身份验证方式。

◎ Kerberos:一种使用对称密钥机制,允许客户端与服务器相互确认身份的认证协议。

除此之外,Spring Security 还引入了一些第三方包,用于支持更多的认证技术,如JOSSO等。如果所有这些技术都无法满足需求,则Spring Security 允许我们编写自己的认证技术。因此,在绝大部分情况下,当我们有Java 应用安全方面的需求时,选择Spring Security 往往是正确而有效的。

授权

在授权上,Spring Security 不仅支持基于URL 对Web 的请求授权,还支持方法访问授权、对象访问授权等,基本涵盖常见的大部分授权场景。

更多时候,一个系统的安全性完全取决于系统开发人员的安全意识。例如,在我们从未听过SQL 注入时,如何意识到要对SQL 注入做防护?关于Web 系统安全的攻击方式非常多,诸如XSS、CSRF 等,未来还会暴露出更多的攻击方式,我们只有在充分了解其攻击原理后,才能提出完善而有效的防护策略。

学习Spring Security 并非局限于降低Java 应用的安全开发成本,通过Spring Security 了解常见的安全攻击手段以及对应的防护方法也尤为重要,这些是脱离具体开发语言而存在的。

虽然Spring Security 有强大的功能,但它同时也有很高的学习成本。

它囊括了身份认证的各种应用场景以及Web 安全的大量知识,仅官方参考手册就有数十万字,并且还省略了诸多实现细节。许多开发人员在面对这样的“庞然大物”时无从入手,更因为对其不够了解而在实际项目中不敢轻易采用。

《Spring Security实战》作为第一本中文版Spring Security相关著作,它的出现为国内学习者提供了一条由浅入深的Spring Security学习路线!

本书讲解了Spring Security 的典型应用场景,并分析了部分核心源码,以及许多开发语言之外的安全知识。通过本书,读者不仅可以学习如何应用Spring Security,还可以学习借鉴它的实现思路,以将这种实现思路应用到其他开发场景中。

在Spring Security应用场景内,深度融合Spring Session、Spring Social、Spring Security OAuth等多个框架,帮助读者完整体验Spring Security优异的扩展性所带来的便利。

读者评论

  • spring security源代码在哪里下载?

    zhao1949发表于 2019/9/9 19:53:27

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    5421 735 3 7
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    3299 36 0 1
  • czk 2017-07-29
    5866 28 0 1