Spring Security 提供了声明式的安全访问控制解决方案(仅支持基于 Spring 的应用程序),对访问权限进行认证和授权,它基于 Spring AOP 和 Servlet 过滤器,提供了安全性方面的全面解决方案。
除常规的认证和授权外,它还提供了 ACLs、LDAP、JAAS、CAS 等高级特性以满足复杂情况下的安全需求。
1.1 焦点概念
除使用提供的认证外,还可以编写自己的 Filter(过滤器),提供与那些不是基于 Spring Security 的验证系统的操作。
1.2.2 授权(authorization)
在一个系统中,差别用户具有的权限是差别的。一样平常来说,系统会为差别的用户分配差别的角色,而每个角色则对应一系列的权限。 它判定某个 Principal 在应用程序中是否答应执行某个操作。在进行授权判定之前,要求其所要使用到的规则必须在验证过程中已经创建好了。
对 Web 资源的保护,最好的办法是使用过滤器。对方法调用的保护,最好的办法是使用 AOP。
Spring Security 在进行用户认证及授予权限时,也是通过各种拦截器和 AOP 来控制权限访问的,从而实现安全。
1.3 模块
名称模块 表明 焦点模块spring-security-core.jar包罗焦点验证和访问控制类和接口,以及支持远程配置的根本 API。远程调用spring-security-remoting.jar提供与 Spring Remoting 集成。网页spring-security-web.jar包罗网站安全的模块,提供网站认证服务和基于 URL 访问控制。配置spring-security-config.jar包罗安全命令空间解析代码。LDAPspring-security-ldap.jarLDAP 验证和配置。ACLspring-security-acl.jar对 ACL 访问控制表的实现。CASspring-security-cas.jar对 CAS 客户端的安全实现。OpenlDspring-security-openid.jar对 OpenID 网页验证的支持。Testspring-security-test.jar对 Spring Security 的测试的支持。 2.焦点类