SpringSecurity---简介
1、概述
1.1、应用程序的 安全性 通常体现在两个方面:认证和授权
认证:
确认某主体(用户、设备、系统...)在某系统中是否合法、可用;
授权:
当主体通过认证之后,是否允许其执行某项操作;
1.2、Spring Security 的前身是 Acegi Security,在被收纳为Spring 子项目后正式更名为Spring Security。
1.3、Spring Security已经升级到5.1.3.RELEASE版本,加入了原生OAuth2.0框架,支持 更加现代化的密码加密方式。
1.4、认证
Spring Security 支持广泛的 认证技术(大多由第三方或相关标准组织开发),SpringSecurity已经集成的认证技术如下:
◎ 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:一种使用对称密钥机制,允许客户端与服务器相互确认身份的认证协议。
1.5、授权
Spring Security不仅支持 基于URL对Web的请求授权,还支持 方法访问授权、对象访问授权等,基本涵盖常见的大部分授权场景;