一、Spring Security基础了解

公司目前在用Spring Security框架,用来控制权限;
安全包含两块
一,验证
  1.效验用户合法性
  2.对一些受保护的信息是否可访问
二,认证
  1.当验证1通过,可以给该用户或者说是主体授权

这两块用了很久,但今天还想了一会,又查了查所谓( AA,authentication和authorization,一般翻译成认证和授权。认证是识别客户,授权的前提是认证,授权给指定客户权限。)
认证是对用户是否可以执行操作的判断或者说是授权
验证是对用户权限判断,是否可执行一些特定操作

目前支持认证一体化和如下认证技术:
HTTP BASIC authentication headers (一个基于IEFT RFC 的标准)
HTTP Digest authentication headers (一个基于IEFT RFC 的标准)
HTTP X.509 client certificate exchange (一个基于IEFT RFC 的标准)
LDAP (一个非常常见的跨平台认证需要做法,特别是在大环境)
Form-based authentication (提供简单用户接口的需求)
OpenID authentication
基于预先建立的请求头进行认证(比如Computer Associates Siteminder)
JA-SIG Central Authentication Service (也被称为CAS,这是一个流行的开源单点登
录系统)
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)
JEE Container autentication (这样,你可以继续使用容器管理认证,如果想的话)

1.4.1.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
org.springframework.security.remoting
1.4.1.2. Web - spring-security-web.jar
包含过滤器和对应的web 安全架构代码。任何需要依赖servlet API 的。你将需要它,如
果你需要Spring Security Web 认证服务和基于URL 的权限控制。主包是
org.springframework.security.web。
1.4.1.3. Config - spring-security-config.jar
包含安全命名控制解析代码(因此我们不能直接把它用在你的应用中)。你需要它, 如果使
用了Spring Security XML 命名控制来进行配置。主包是
org.springframework.security.config。
1.4.1.4. LDAP - spring-security-ldap.jar
LDAP 认证和实现代码,如果你需要使用LDAP 认证或管理LDAP 用户实体就是必须的。顶
级包是org.springframework.security.ldap。
1.4.1.5. ACL - spring-security-acl.jar
处理领域对象ACL 实现。用来提供安全给特定的领域对象实例,在你的应用中。顶级包是
org.springframework.security.acls。
1.4.1.6. CAS - spring-security-cas-client.jar
Spring Security 的CAs 客户端集成。如果你希望使用Spring Security web 认证整合
一个CAS 单点登录服务器。顶级包是org.springframework.security.cas。
1.4.1.7. OpenID - spring-security-openid.jar
OpenID web 认证支持。用来认证用户, 通过一个外部的OpenID 服务。
org.springframework.security.openid。需要OpenID4Java。
1.4.2. 获得源代码
Spring Security 是一个开源项目,我们大力推荐你从subversion 获得源代码。这样你
可以获得所有的示例,你可以很容易的建立目前最新的项目。获得项目的源代码对调试也
有很大的帮助。异常堆栈不再是模糊的黑盒问题,你可以直接找到发生问题的那一行,查
找发生了什么额外难题。源代码也是项目的最终文档,常常是最简单的方法,找出这些事
情是如何工作的。
要像获得项目最新的源代码,使用如下subversion 命令:
svn checkout
http://acegisecurity.svn.sourceforge.net/svnroot/acegisecurity/spring-security/trunk/
你可以获得特定版本的源代码
http://acegisecurity.svn.sourceforge.net/svnroot/acegisecurity/spring-security
/tags/.
Security 命名空间配置
从Spring-2.0开始可以使用命名空间的配置方式。使用它呢,可以通过附加xml 架构,
为传统的spring beans 应用环境语法做补充。你可以在spring 参考文档得到更多信息。命
名空间元素可以简单的配置单个bean,或使用更强大的,定义一个备用配置语法,这可以
更加紧密的匹配问题域,隐藏用户背后的复杂性。简单元素可能隐藏事实,多种bean 和
处理步骤添加到应用环境中。比如,把下面的security 命名元素添加到应用环境中,将会
为测试用途,在应用内部启动一个内嵌LDAP 服务器:
<security:ldap-server />
这比配置一个Apache 目录服务器bean 要简单得多。最常见的替代配置需求都可以使用
ldap-server 元素的属性进行配置,这样用户就不用担心他们需要设置什么,不用担心bean
里的各种属性。[1]。使用一个良好的XML 编辑器来编辑应用环境文件,应该提供可用的属
性和元素信息。我们推荐你尝试一下SpringSource 工具套件因为它具有处理spring 组合
命名空间的特殊功能。
要开始在你的应用环境里使用security 命名空间,你所需要的就是把架构声明添加到你的
应用环境文件里:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
...
</beans>

在许多例子里,你会看到(在示例中)应用,我们通常使用"security"作为默认的命名空间,
而不是"beans",这意味着我们可以省略所有security 命名空间元素的前缀,使上下文更
容易阅读。如果你把应用上下文分割成单独的文件,让你的安全配置都放到其中一个文件
里,这样更容易使用这种配置方法。你的安全应用上下文应该像这样开头
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
...
</beans:beans>

猜你喜欢

转载自zcw-java.iteye.com/blog/1312053
今日推荐