在 Spring Security 3.0 中,代码库已经被分为几个独立的 jar 包,这样可以更清晰的区分功能和第三方 jar 包依赖。如果你是用 Maven 来构建你的项目,那么这里有几个模块需要你加入到你的 pom.xml 中。即使你不使用 Maven ,我们仍建议你的参考这个 pom.xml 来了解第三方依赖以及版本。另外,检查示例程序包含的库是一个好主意。
4.1 Core-spring-security-core.jar
包含核心认证和访问控制的类和接口,远程支持和基础的配置 API 。任何使用 Spring Security 的程序都需要。支持独立应用,远程客户,方法(服务层)安全以及 JDBC 用户配置。包含如下的顶级包:
org.springframework.security.core
org.springframework.security.access
org.springframework.security.authentication
org.springframework.security.provisioning
4.2 Remoting - spring-security-remoting.jar
提供与 Spring Remote 的集成。如果你不是在写一个使用 Spring Remoting 的客户端的话,并不需要使用这个模块。主要的 package 是:
org.springframework.security.remoting
4.3 Web - spring-security-web.jar
包含过滤器和 web 安全相关的基础代码。所有基于 servlet API 的依赖。如果你使用 Spring Security Web 安全认证服务和基于 URL 的认证控制。主要的package是:
org.springframework.security.web
4.4 Config - spring-security-config.jar
包含安全命名空间解析代码和 Java 配置代码。如果你使用 Spring Security XML 命名空间作为配置或者使用 Spring Security 的 Java 配置作为支持,那么你需要这个 jar 。这里主要的 package 是 org.springfranework.security.config 。这个包里的类并不希望被在项目中被直接使用。
4 项目模块
在 Spring Security 3.0 中,代码库已经被分为几个独立的 jar 包,这样可以更清晰的区分功能和第三方 jar 包依赖。如果你是用 Maven 来构建你的项目,那么这里有几个模块需要你加入到你的
pom.xml
中。即使你不使用 Maven ,我们仍建议你的参考这个pom.xml
来了解第三方依赖以及版本。另外,检查示例程序包含的库是一个好主意。4.1 Core-spring-security-core.jar
包含核心认证和访问控制的类和接口,远程支持和基础的配置 API 。任何使用 Spring Security 的程序都需要。支持独立应用,远程客户,方法(服务层)安全以及 JDBC 用户配置。包含如下的顶级包:
org.springframework.security.core
org.springframework.security.access
org.springframework.security.authentication
org.springframework.security.provisioning
4.2 Remoting - spring-security-remoting.jar
提供与 Spring Remote 的集成。如果你不是在写一个使用 Spring Remoting 的客户端的话,并不需要使用这个模块。主要的 package 是:
org.springframework.security.remoting
4.3 Web - spring-security-web.jar
包含过滤器和 web 安全相关的基础代码。所有基于 servlet API 的依赖。如果你使用 Spring Security Web 安全认证服务和基于 URL 的认证控制。主要的package是:
org.springframework.security.web
4.4 Config - spring-security-config.jar
包含安全命名空间解析代码和 Java 配置代码。如果你使用 Spring Security XML 命名空间作为配置或者使用 Spring Security 的 Java 配置作为支持,那么你需要这个 jar 。这里主要的 package 是
org.springfranework.security.config
。这个包里的类并不希望被在项目中被直接使用。4.5 LDAP - spring-security-ladp.jar
LDAP 认证和配置代码。如果你希望使用 LDAP 认证或控制 LDAP 用户条目。这里的顶级 package 是:
org.springframework.security.ldap
。4.6 OAuth 2.0 Core - spring-security-oauth2-core.jar
spriong-security-oauth2-core.jar
包含了提供支持 OAuth 2.0 框架和 OpenID Connect Core 1.0 的核心类和接口。当应用基于 OAuth 2.0 或者 OpenID Connection Core 1.0 来架构,例如,客户端,资源服务器,认证服务器等的时候,需要使用这个 jar 包。这个顶级 package 是:org.springframework.security.oauth2.core
。4.7 OAuth 2.0 Client - spring-security-oauth2-client.jar
spring-security-oauth2-client.jar
是 Spring Security 提供给客户端来支持 OAuth 2.0 认证框架和 OpenID Connect Core。当应用需要利用 OAuth 2.0 登录和/或 OAuth 客户端支持,这个 jar 是必须的。顶级的 package 是org.springframework.security.oauth2.client
。4.8 OAuth 2.0 JOSE - spring-security-oauth2-jose.jar
spring-security-oauth2-jose.jar
包含 Spring Security 对 JOSE(JavaScript Object Signing and Encryption) 框架的支持。JOSE 框架的目的是在更方之间,安全的传递认证。它建立在一系列的规范之上:它包含的顶级 package 有:
org.springframework.security.oauth2.jwt
org.springframework.security.oaut2.jose
4.9 ACL - spring-security-acl.jar
特定的域对象 ACL 实现。用来在你的应用中,对特定的域对象应用安全策略。顶级 package 是:
org.springframework.security.acls
。4.10 CAS - spring-security-cas.jar
Spring Security 的 CAS 客户端集成。如果你希望把 Spring Security web 认证和 CAS 单点登录服务器一起使用。顶级 package 是:
org.springframework.security.cas
。4.11 OpenID - spring-security-openid.jar
OpenID web 认证支持。用来认证使用者对应一个外部 OpenID 服务器。顶级 package 是
org.springframework.security.openid
。需要 OpenID4Java 。4.12 Test - spring-security-test.jar
支持 Spring Security 的测试。