SpringSecurity提供了全面的基于J2EE的企业应用程序的安全服务,是一个功能强大的且高度可客制化的基于access
-control的框架,是基于Spring应用程序的事实上的安全框架,基于SpringAOP和Servlet 过滤器的安全框架。
SpringSecurity提供了一个完整的解决方案,用于处理Web层请求(严格控制URL的访问)和方法调用层(SpringAOPen)的安全,包括认证和授权。
1. Authentication与Authorization(or access -control)
Authentication是建立一个可认可的Principal的过程,这个Principal可以是一个user,设备 或者是可以在应用程序
中执行一个操作的其他系统; Authorization指决定一个Principal能否在应用程序中执行操作的过程。为了实现什么
时候一个Authorization需要,Princiapl的一致性在建立Principal的过程中已经被建立。
2. SpringSecurity-Project Modules
(1) Core - spring-security-core.jar
包含核心的Authentication和访问控制类和接口,远程服务支持及基本的API。
(2) Web - spring-security-web.jar
包括过滤器和相关Web安全的基础代码,如果需要SpringSecurity Web认证服务以及使用基于URL的访问控制,则
需要使用该JAR文件。
(3) Config - spring-security-config.jar
包括Security命名空间解析代码。
(4) LDAP - spring-security-ldap.jar
LDAP认证以及基础代码。
(5) Tag Library - spring-security-taglibs
用于视图层安全的JSP标签。
(6) CAS - spring-security-cas-client.jar
与CAS客户端集成辅助类。
(7) OpenID - spring-security-openid.jar
用于支持使用外部OpenID服务器的认证。
(8) ACL-spring-security-acl
用于在应用程序中将安全应用到特定的域对象实例上。
3.SpringSecurity的特性
(1) 可移植:基于SpringSecurity的安全体制,可降低部署至不同的服务器时调整应用程序自身的配置的工作量,所
有同安全相关的配置都将内置在应用本身;
(2) 支持大量企业级特性:如支持多种认证策略,控制并发HttpSession,自定义退出逻辑,集成第三方安全解决方案;
(3) 易于实施集成测试或CI(Continuous Intefration)工作。