- 浏览: 293302 次
- 性别:
- 来自: 唐山
最新评论
-
小灯笼:
JBPM5.4实战流程引擎开发网盘地址:https://pan ...
跟我学工作流——jBPM4视频教程(免费) -
Kai_Ge:
学会做人 写道临远大哥,谢谢你的贡献大名鼎鼎的临远!!膜拜中。 ...
Spring Security-3.0.1中文官方文档(翻译版) -
漂泊一剑客:
博主,你自己电脑上有下载,这些信息吗,能否分享一下给我
跟我学工作流——jBPM4视频教程(免费) -
Rookie_Li:
您好,您的教程很有用,请问例子的源码在哪下载?
spring security权限管理手册升级至spring security-3.1.3 -
nullFFF:
马教授 写道现在还用4有点过时了,最新的都已经是5.4了,目前 ...
跟我学工作流——jBPM4视频教程(免费)
安全对象实现
23.1. AOP联盟 (MethodInvocation) 安全拦截器
在Spring Security 2.0之前,安全MethodInvocation需要进行很多厚重的配置。 现在为方法安全推荐的方式,是使用命名空间配置. 使用这个方式,会自动为你配置好方法安全基础bean,,你不需要了解那些实现类。 我们只需要对这些类提供一个在这里提到的快速概述。
方法安全强制使用 MethodSecurityInterceptor,它会保障 MethodInvocation。 依靠配置方法,一个拦截器可能作用于一个单独的bean或者在多个bean之间共享。 拦截器使用MethodDefinitionSource实例获得配置属性,应用特定的方法调用。 MapBasedMethodDefinitionSource通过方法名(也可以是通配符)保存配置属性关键字,当使用<intercept-methods> 或<protect-point>元素把属性定义在application context里,将在内部使用。 其他实现会用来处理基于注解的配置。
23.1.1. 精确的 MethodSecurityIterceptor 配置
你可以使用一个Spring AOP代理机制,直接在你的application context里配置一个 MethodSecurityIterceptor :
<bean id="bankManagerSecurity"
class="org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="afterInvocationManager" ref="afterInvocationManager"/>
<property name="objectDefinitionSource">
<value>
org.springframework.security.context.BankManager.delete*=ROLE_SUPERVISOR
org.springframework.security.context.BankManager.getBalance=ROLE_TELLER,ROLE_SUPERVISOR
</value>
</property>
</bean>
23.2. AspectJ (JoinPoint) 安全拦截器
AspectJ 安全拦截器相对于上面讨论的AOP联盟安全拦截器,就非常简单了。 事实上,我们这节只讨论不同的部分。
AspectJ 拦截器的名字是 AspectJSecurityInterceptor。 与AOP联盟安全拦截器不同,在Spring的application context中的安全拦截器通过代理织入,AspectJSecurityInterceptor是通过AspectJ编译器织入。 在一个系统里使用两种类型的安全拦截器也是常见的,使用AspectJSecurityInterceptor处理领域对象实例的安全,AOP联盟MethodSecurityInterceptor用来处理服务层安全。
让我们首先考虑如何把AspectJSecurityInterceptor配置到spring的application context里:
<bean id="bankManagerSecurity"
class="org.springframework.security.intercept.method.aspectj.AspectJSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="afterInvocationManager" ref="afterInvocationManager"/>
<property name="objectDefinitionSource">
<value>
org.springframework.security.context.BankManager.delete*=ROLE_SUPERVISOR
org.springframework.security.context.BankManager.getBalance=ROLE_TELLER,ROLE_SUPERVISOR
</value>
</property>
</bean>
像你看到的,除了类名的部分,AspectJSecurityInterceptor其实与AOP联盟安全拦截器一样。 实际上,两个拦截器共享同样的objectDefinitionSource,ObjectDefinitionSource运行的时候使用java.lang.reflect.Method而不是AOP库特定的类。 当然,你的访问表决,已经获得了AOP库具体的引用(比如MethodInvocation 或 JoinPoint),也可以考虑在使用防伪决议时进行更精确的判断(比如利用方法参数)。
下一步,你需要定义一个 AspectJ 切面。比如:
package org.springframework.security.samples.aspectj;
import org.springframework.security.intercept.method.aspectj.AspectJSecurityInterceptor;
import org.springframework.security.intercept.method.aspectj.AspectJCallback;
import org.springframework.beans.factory.InitializingBean;
public aspect DomainObjectInstanceSecurityAspect implements InitializingBean {
private AspectJSecurityInterceptor securityInterceptor;
pointcut domainObjectInstanceExecution(): target(PersistableEntity)
&& execution(public * *(..)) && !within(DomainObjectInstanceSecurityAspect);
Object around(): domainObjectInstanceExecution() {
if (this.securityInterceptor == null) {
return proceed();
}
AspectJCallback callback = new AspectJCallback() {
public Object proceedWithObject() {
return proceed();
}
};
return this.securityInterceptor.invoke(thisJoinPoint, callback);
}
public AspectJSecurityInterceptor getSecurityInterceptor() {
return securityInterceptor;
}
public void setSecurityInterceptor(AspectJSecurityInterceptor securityInterceptor) {
this.securityInterceptor = securityInterceptor;
}
public void afterPropertiesSet() throws Exception {
if (this.securityInterceptor == null)
throw new IllegalArgumentException("securityInterceptor required");
}
}
在上面例子里,安全拦截器会作用在每一个PersistableEntity实例上,这是没提到过的一个抽象类(你可以使用任何其他的类或你喜欢的切点)。 对于那些情况AspectJCallback是必须的,因为proceed();语句只有在around()内部才有意义。 AspectJSecurityInterceptor在想继续执行目标对象时,调用这个匿名AspectJCallback类。
你会需要配置Spring读取切面,织入到AspectJSecurityInterceptor中。 下面的声明会处理这个:
<bean id="domainObjectInstanceSecurityAspect"
class="org.springframework.security.samples.aspectj.DomainObjectInstanceSecurityAspect"
factory-method="aspectOf">
<property name="securityInterceptor"><ref bean="aspectJSecurityInterceptor"/></property>
</bean>
就是这个了!现在你可以在你的系统里任何地方创建bean了,无论用你想到的什么方式(比如new Person();),他们都会被安全拦截器处理。
23.3. FilterInvocation 安全拦截器
为了保护 FilterInvocation,开发者需要添加 FilterSecurityInterceptor 到它们的过滤器链。 典型配置例子如下:
在 application context 你需要配置三个bean:
<bean id="exceptionTranslationFilter"
class="org.springframework.security.ui.ExceptionTranslationFilter">
<property name="authenticationEntryPoint" ref="authenticationEntryPoint"/>
</bean>
<bean id="authenticationEntryPoint"
class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl" value="/acegilogin.jsp"/>
<property name="forceHttps" value="false"/>
</bean>
<bean id="filterSecurityInterceptor"
class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="objectDefinitionSource">
<security:filter-invocation-definition-source>
<security:intercept-url pattern="/secure/super/**" access="ROLE_WE_DONT_HAVE"/>
<security:intercept-url pattern="/secure/**" access="ROLE_SUPERVISOR,ROLE_TELLER"/>
</security:filter-invocation-definition-source>
</property>
</bean>
ExceptionTranslationFilter 提供了Java异常和HTTP响应之间的桥梁。 他们与维护的用户接口之间是完全独立的。 过滤器没有执行任何真实的安全处理。 如果一个 AuthenticationException 被检测到,过滤器会调用 AuthenticationEntryPoint 启动认证过程(比如一个用户登录)。
如果用户请求受保护的HTTP请求,但是他们没有认证, AuthenticationEntryPoint 就会被调用。 类处理将对应响应发送给用户,这样验证就可以开始了。 Spring Security提供了三个具体实现:AuthenticationProcessingFilterEntryPoint 对应表单认证, BasicProcessingFilterEntryPoint 对应HTTP基本认证过程,CasProcessingFilterEntryPoint 对应JA-SIG中心认证服务(CAS)登录。 AuthenticationProcessingFilterEntryPoint 和 CasProcessingFilterEntryPoint可以选择强制使用HTTPS,所以如果需要它,请参考JavaDocs。
FilterSecurityInterceptor 用来处理HTTP资源的安全。 像其他安全拦截器一样,它需要引用AuthenticationManager 和 AccessDecisionManager,它们都会在下面的单独章节里进行讨论。 FilterSecurityInterceptor也使用配置属性进行配置,处理不同的HTTP URL请求。 一个对配置属性的完全讨论,提供在这份文档的高级设计章节中。
FilterSecurityInterceptor 可以使用两种方式配置配置属性。 第一种,在上面演示了,使用<filter-invocation-definition-source>命名元素。 它直接使用 <filter-chain-map>配置一个FilterChainProxy,但是<intercept-url>子元素,只使用pattern和access属性。 第二种,写你自己的ObjectDefinitionSource,虽然这个超越了文档的范围。 不论使用哪种方法,ObjectDefinitionSource用来返回ConfigAttributeDefinition对象,包含所有配置属性,分配给单独的受保护HTTP URL。
应该注意 FilterSecurityInterceptor.setObjectDefinitionSource()方法其实期望一个FilterInvocationDefinitionSource实例。 这是一个继承了ObjectDefinitionSource的标记接口。 它直接提供ObjectDefinitionSource,理解FilterInvocation。 基于直接的兴趣,我们继续参考 FilterInvocationDefinitionSource,像一个ObjectDefinitionSource,FilterSecurityInterceptor大多数用户的区别的相关性都很小。
在使用命名空间选项配置拦截器时,逗号用来分隔每个HTTP URL上的不同配置属性。 每个配置属性分配到它自己的SecurityConfig对象里。 SecurityConfig对象在高级设计章中讨论。 被属性编辑器创建的ObjectDefinitionSource,FilterInvocationDefinitionSource,匹配配置属性FilterInvocations,是基于请求URL的表达式计算出来的。 目前支持两种标准表达式语法。 默认的是处理所有表达式,用Apache Ant路径和正则表达式,也支持ore复杂情况。 path-type属性用来指定使用的模式类型。 不能在一个定义里使用组合表达式语法。 比如,上一个配置使用正则表达式,代替Ant路径,会写成下面这样:
<bean id="filterInvocationInterceptor"
class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="runAsManager" ref="runAsManager"/>
<property name="objectDefinitionSource">
<security:filter-invocation-definition-source path-type="regex">
<security:intercept-url pattern="\A/secure/super/.*\Z" access="ROLE_WE_DONT_HAVE"/>
<security:intercept-url pattern="\A/secure/.*\" access="ROLE_SUPERVISOR,ROLE_TELLER"/>
</security:filter-invocation-definition-source>
</property>
</bean>
无论使用什么表达式语法,表达式通常根据它们的定义执行。 因此重要的,更确切的表达式要放在不特定的表达式列表的上面。 在我们上面的例子里有提及,更确切的 /secure/super/ 模式放在,比不怎么确切 /secure/模型靠上的地方。 如果它们换了位置,/secure/会一直被匹配,/secure/super/则永远不会执行。
像使用其他安全拦截器一样,validateConfigAttributes属性会被检查。 设置成true的时候(默认),在启动的时候 FilterSecurityInterceptor 会检查提供的配置属性是否有效。 它检测每个可以执行的配置属性,通过AccessDecisionManager 或 RunAsManager。 如果没有可以执行的配置属性,会抛出一个异常。
23.1. AOP联盟 (MethodInvocation) 安全拦截器
在Spring Security 2.0之前,安全MethodInvocation需要进行很多厚重的配置。 现在为方法安全推荐的方式,是使用命名空间配置. 使用这个方式,会自动为你配置好方法安全基础bean,,你不需要了解那些实现类。 我们只需要对这些类提供一个在这里提到的快速概述。
方法安全强制使用 MethodSecurityInterceptor,它会保障 MethodInvocation。 依靠配置方法,一个拦截器可能作用于一个单独的bean或者在多个bean之间共享。 拦截器使用MethodDefinitionSource实例获得配置属性,应用特定的方法调用。 MapBasedMethodDefinitionSource通过方法名(也可以是通配符)保存配置属性关键字,当使用<intercept-methods> 或<protect-point>元素把属性定义在application context里,将在内部使用。 其他实现会用来处理基于注解的配置。
23.1.1. 精确的 MethodSecurityIterceptor 配置
你可以使用一个Spring AOP代理机制,直接在你的application context里配置一个 MethodSecurityIterceptor :
<bean id="bankManagerSecurity"
class="org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="afterInvocationManager" ref="afterInvocationManager"/>
<property name="objectDefinitionSource">
<value>
org.springframework.security.context.BankManager.delete*=ROLE_SUPERVISOR
org.springframework.security.context.BankManager.getBalance=ROLE_TELLER,ROLE_SUPERVISOR
</value>
</property>
</bean>
23.2. AspectJ (JoinPoint) 安全拦截器
AspectJ 安全拦截器相对于上面讨论的AOP联盟安全拦截器,就非常简单了。 事实上,我们这节只讨论不同的部分。
AspectJ 拦截器的名字是 AspectJSecurityInterceptor。 与AOP联盟安全拦截器不同,在Spring的application context中的安全拦截器通过代理织入,AspectJSecurityInterceptor是通过AspectJ编译器织入。 在一个系统里使用两种类型的安全拦截器也是常见的,使用AspectJSecurityInterceptor处理领域对象实例的安全,AOP联盟MethodSecurityInterceptor用来处理服务层安全。
让我们首先考虑如何把AspectJSecurityInterceptor配置到spring的application context里:
<bean id="bankManagerSecurity"
class="org.springframework.security.intercept.method.aspectj.AspectJSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="afterInvocationManager" ref="afterInvocationManager"/>
<property name="objectDefinitionSource">
<value>
org.springframework.security.context.BankManager.delete*=ROLE_SUPERVISOR
org.springframework.security.context.BankManager.getBalance=ROLE_TELLER,ROLE_SUPERVISOR
</value>
</property>
</bean>
像你看到的,除了类名的部分,AspectJSecurityInterceptor其实与AOP联盟安全拦截器一样。 实际上,两个拦截器共享同样的objectDefinitionSource,ObjectDefinitionSource运行的时候使用java.lang.reflect.Method而不是AOP库特定的类。 当然,你的访问表决,已经获得了AOP库具体的引用(比如MethodInvocation 或 JoinPoint),也可以考虑在使用防伪决议时进行更精确的判断(比如利用方法参数)。
下一步,你需要定义一个 AspectJ 切面。比如:
package org.springframework.security.samples.aspectj;
import org.springframework.security.intercept.method.aspectj.AspectJSecurityInterceptor;
import org.springframework.security.intercept.method.aspectj.AspectJCallback;
import org.springframework.beans.factory.InitializingBean;
public aspect DomainObjectInstanceSecurityAspect implements InitializingBean {
private AspectJSecurityInterceptor securityInterceptor;
pointcut domainObjectInstanceExecution(): target(PersistableEntity)
&& execution(public * *(..)) && !within(DomainObjectInstanceSecurityAspect);
Object around(): domainObjectInstanceExecution() {
if (this.securityInterceptor == null) {
return proceed();
}
AspectJCallback callback = new AspectJCallback() {
public Object proceedWithObject() {
return proceed();
}
};
return this.securityInterceptor.invoke(thisJoinPoint, callback);
}
public AspectJSecurityInterceptor getSecurityInterceptor() {
return securityInterceptor;
}
public void setSecurityInterceptor(AspectJSecurityInterceptor securityInterceptor) {
this.securityInterceptor = securityInterceptor;
}
public void afterPropertiesSet() throws Exception {
if (this.securityInterceptor == null)
throw new IllegalArgumentException("securityInterceptor required");
}
}
在上面例子里,安全拦截器会作用在每一个PersistableEntity实例上,这是没提到过的一个抽象类(你可以使用任何其他的类或你喜欢的切点)。 对于那些情况AspectJCallback是必须的,因为proceed();语句只有在around()内部才有意义。 AspectJSecurityInterceptor在想继续执行目标对象时,调用这个匿名AspectJCallback类。
你会需要配置Spring读取切面,织入到AspectJSecurityInterceptor中。 下面的声明会处理这个:
<bean id="domainObjectInstanceSecurityAspect"
class="org.springframework.security.samples.aspectj.DomainObjectInstanceSecurityAspect"
factory-method="aspectOf">
<property name="securityInterceptor"><ref bean="aspectJSecurityInterceptor"/></property>
</bean>
就是这个了!现在你可以在你的系统里任何地方创建bean了,无论用你想到的什么方式(比如new Person();),他们都会被安全拦截器处理。
23.3. FilterInvocation 安全拦截器
为了保护 FilterInvocation,开发者需要添加 FilterSecurityInterceptor 到它们的过滤器链。 典型配置例子如下:
在 application context 你需要配置三个bean:
<bean id="exceptionTranslationFilter"
class="org.springframework.security.ui.ExceptionTranslationFilter">
<property name="authenticationEntryPoint" ref="authenticationEntryPoint"/>
</bean>
<bean id="authenticationEntryPoint"
class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl" value="/acegilogin.jsp"/>
<property name="forceHttps" value="false"/>
</bean>
<bean id="filterSecurityInterceptor"
class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="objectDefinitionSource">
<security:filter-invocation-definition-source>
<security:intercept-url pattern="/secure/super/**" access="ROLE_WE_DONT_HAVE"/>
<security:intercept-url pattern="/secure/**" access="ROLE_SUPERVISOR,ROLE_TELLER"/>
</security:filter-invocation-definition-source>
</property>
</bean>
ExceptionTranslationFilter 提供了Java异常和HTTP响应之间的桥梁。 他们与维护的用户接口之间是完全独立的。 过滤器没有执行任何真实的安全处理。 如果一个 AuthenticationException 被检测到,过滤器会调用 AuthenticationEntryPoint 启动认证过程(比如一个用户登录)。
如果用户请求受保护的HTTP请求,但是他们没有认证, AuthenticationEntryPoint 就会被调用。 类处理将对应响应发送给用户,这样验证就可以开始了。 Spring Security提供了三个具体实现:AuthenticationProcessingFilterEntryPoint 对应表单认证, BasicProcessingFilterEntryPoint 对应HTTP基本认证过程,CasProcessingFilterEntryPoint 对应JA-SIG中心认证服务(CAS)登录。 AuthenticationProcessingFilterEntryPoint 和 CasProcessingFilterEntryPoint可以选择强制使用HTTPS,所以如果需要它,请参考JavaDocs。
FilterSecurityInterceptor 用来处理HTTP资源的安全。 像其他安全拦截器一样,它需要引用AuthenticationManager 和 AccessDecisionManager,它们都会在下面的单独章节里进行讨论。 FilterSecurityInterceptor也使用配置属性进行配置,处理不同的HTTP URL请求。 一个对配置属性的完全讨论,提供在这份文档的高级设计章节中。
FilterSecurityInterceptor 可以使用两种方式配置配置属性。 第一种,在上面演示了,使用<filter-invocation-definition-source>命名元素。 它直接使用 <filter-chain-map>配置一个FilterChainProxy,但是<intercept-url>子元素,只使用pattern和access属性。 第二种,写你自己的ObjectDefinitionSource,虽然这个超越了文档的范围。 不论使用哪种方法,ObjectDefinitionSource用来返回ConfigAttributeDefinition对象,包含所有配置属性,分配给单独的受保护HTTP URL。
应该注意 FilterSecurityInterceptor.setObjectDefinitionSource()方法其实期望一个FilterInvocationDefinitionSource实例。 这是一个继承了ObjectDefinitionSource的标记接口。 它直接提供ObjectDefinitionSource,理解FilterInvocation。 基于直接的兴趣,我们继续参考 FilterInvocationDefinitionSource,像一个ObjectDefinitionSource,FilterSecurityInterceptor大多数用户的区别的相关性都很小。
在使用命名空间选项配置拦截器时,逗号用来分隔每个HTTP URL上的不同配置属性。 每个配置属性分配到它自己的SecurityConfig对象里。 SecurityConfig对象在高级设计章中讨论。 被属性编辑器创建的ObjectDefinitionSource,FilterInvocationDefinitionSource,匹配配置属性FilterInvocations,是基于请求URL的表达式计算出来的。 目前支持两种标准表达式语法。 默认的是处理所有表达式,用Apache Ant路径和正则表达式,也支持ore复杂情况。 path-type属性用来指定使用的模式类型。 不能在一个定义里使用组合表达式语法。 比如,上一个配置使用正则表达式,代替Ant路径,会写成下面这样:
<bean id="filterInvocationInterceptor"
class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="runAsManager" ref="runAsManager"/>
<property name="objectDefinitionSource">
<security:filter-invocation-definition-source path-type="regex">
<security:intercept-url pattern="\A/secure/super/.*\Z" access="ROLE_WE_DONT_HAVE"/>
<security:intercept-url pattern="\A/secure/.*\" access="ROLE_SUPERVISOR,ROLE_TELLER"/>
</security:filter-invocation-definition-source>
</property>
</bean>
无论使用什么表达式语法,表达式通常根据它们的定义执行。 因此重要的,更确切的表达式要放在不特定的表达式列表的上面。 在我们上面的例子里有提及,更确切的 /secure/super/ 模式放在,比不怎么确切 /secure/模型靠上的地方。 如果它们换了位置,/secure/会一直被匹配,/secure/super/则永远不会执行。
像使用其他安全拦截器一样,validateConfigAttributes属性会被检查。 设置成true的时候(默认),在启动的时候 FilterSecurityInterceptor 会检查提供的配置属性是否有效。 它检测每个可以执行的配置属性,通过AccessDecisionManager 或 RunAsManager。 如果没有可以执行的配置属性,会抛出一个异常。
发表评论
-
spring security权限管理手册升级至spring security-3.1.3
2012-12-08 01:01 12329费了半天劲,终于把原来基于spring security 2. ... -
请把acegi替换成Spring Security(内附视频)
2010-03-22 09:54 6564在对web项目进行权限管理时,采用的方法无非是写一大堆JSP或 ... -
Spring Security-3.0.1中文官方文档(翻译版)
2010-01-19 09:36 10656这次发布的Spring Security-3.0.1是一个bu ... -
敬献Spring Security-3.x官方文档中文版
2009-12-29 11:43 10893Spring Security-3.x新近发布,整体的项 ... -
【分享】《基于Spring Security的ACL实现与扩展》内附ppt下载
2009-09-21 09:43 3456上次朋友间技术交流整理的ppt文档,因为之前一直在整理Spri ... -
Spring Security 安全权限管理手册(0.1.0更新)
2009-08-05 10:26 5043随着内容的堆叠,文档结构开始渐渐混乱了,到0.1.0为止关于认 ... -
Spring Security 安全权限管理手册(0.0.9更新)
2009-07-27 09:27 3283这次更新中包含了一个在用户输入密码错误三次后锁定账户的示 ... -
Spring Security 安全权限管理手册(0.0.8更新)
2009-07-20 09:58 1894Spring Security-2.0.5发布,这个bug ... -
Spring Security 安全权限管理手册(0.0.7更新)
2009-07-13 00:38 3198这一次迭代,对章节的命名进行了这里,目标是尽快覆盖Spring ... -
Spring Security 安全权限管理手册(0.0.6更新)
2009-07-10 01:54 1677这一次,我们添加了taglib标签库的时候,以及如何使用多种方 ... -
Spring Security手册更新cas, basic, acl
2009-06-29 18:13 2675这次更新的都是重头戏,CAS和ACL。其中ACL只是简述了Sp ... -
Spring Security手册更新——添加“管理会话”和对namespace,database
2009-06-22 10:04 1946新增的部分有,第八章“管理会话”,附录D,E分别整 ... -
图解Spring Security默认使用的过滤器
2009-06-15 10:38 3864第 9 章 图解过滤器 图 9.1. au ... -
Spring Security-2.0导航-基础篇,又添两章
2009-06-10 10:31 1921目前我们在基础篇中已经编写了六章,基本上可 ... -
Spring Security-2.0入门教程(基础篇)
2009-06-04 17:48 4783欢迎阅读咱们写的Spring Security教程,咱们既不想 ... -
springsecurity-2.x官方文档中文翻译初步整理完成,附上几个例子
2008-08-17 11:12 7899预览地址:http://family168.com/tutor ... -
(翻译)Spring Security-2.0.x参考文档“领域对象安全”
2008-08-13 00:18 2203领域对象安全 24.1. 概述 请注意:在2.0.0之前,S ... -
(翻译)Spring Security-2.0.x参考文档“通用授权概念”
2008-08-11 18:22 2826通用授权概念 22.1. 授权 在认证部分简略提过了,所有的 ... -
(翻译)Spring Security-2.0.x参考文档“安全数据库表结构”
2008-08-10 09:52 2038安全数据库表结构 可以为框架采用不同的数据库结构,这个附录为 ... -
(翻译)Spring Security-2.0.x参考文档“容器适配器认证”
2008-08-09 10:08 1936容器适配器认证 21.1. 概述 非常早期版本的Spring ...
相关推荐
### Spring Security 2.0.x完全中文参考文档 #### 序言 本文档旨在为用户提供一份详尽且全面的Spring Security 2.0.x版本的中文指南,它不仅覆盖了核心概念、配置方法以及实际应用案例,还深入探讨了安全框架的...
Spring Security参考文档2.0.x.chm,
NULL 博文链接:https://ReturnOfKing.iteye.com/blog/255089
6. **Spring Security**:5.0版本的Spring Security提供了新的安全特性和改进,如支持OAuth2.0、JWT(JSON Web Tokens)等,强化了认证和授权流程。 7. **Reactor升级**:Spring 5使用了Reactor 3.x作为其响应式...
博文链接:https://antgreen.iteye.com/blog/241206
Spring Security是一个功能强大且高度可定制的认证和访问控制框架,它是针对Java应用程序的安全性需求而设计的。...开发者可以通过阅读官方参考文档来掌握如何在项目中应用和配置Spring Security,实现所需的安全功能。
学习Spring Security 2.0 和 3.0 的中文文档,将帮助开发者深入理解如何配置和使用其核心组件,以及如何处理常见的安全问题。文档通常会包含详细的配置示例、API参考、教程和最佳实践,帮助开发者构建安全的Java应用...
最新文档5.1.1版本详细说明了如何使用Spring Security来保护基于Spring的应用,其中涵盖了各种安全策略的配置和实现方式。以下是从文档中提取的一些关键知识点: 1. **版权和复制说明**:文档的这一部分声明了对...
总结起来,Spring Security 2.0 提供了一个强大且灵活的安全管理框架,通过认证、授权、过滤器链和各种安全策略,确保了Web应用程序的安全性。了解并掌握这些知识点对于开发和维护安全的Java应用至关重要。
- **Spring Security**:提供了全面的安全管理框架,包括身份验证、授权和加密服务。 - **测试支持**:Spring提供了丰富的测试工具和库,包括Mockito集成,便于单元测试和集成测试。 总的来说,Spring Framework ...
Spring Security 2.0.x 参考手册 中文版
本项目"activiti6-springboot2.0-demo.zip"就是一个实例,展示了如何将 Activiti 6 集成到 SpringBoot 2.0 的环境中,并实现流程高亮显示、在线Web设计器集成以及相关的Java代码和参考文档。 一、Activiti 6 知识点...
- **安全控制**:通过Spring Security,可以方便地实现用户认证和授权,保护应用的安全。 - **微服务架构**:结合Spring Cloud,可以构建完整的微服务生态系统,包括服务注册与发现、配置中心、熔断机制等。 4. ...
Spring Security是Java平台上一个强大的安全框架,主要...Spring Security是一个功能丰富且不断进化的安全框架,每个版本的更新都会增加新的特性和改进现有功能,因此建议开发者参考官方文档进行深入学习和实际应用。
《Spring Security 2.0深度解析》 Spring Security是一款强大的安全框架,用于处理Java应用程序的安全需求,特别是...在实际开发中,可以参考博客链接中的内容,结合官方文档,逐步探索和掌握Spring Security的精髓。
4. **互操作性**:由于CXF实现了多种Web服务标准,如WSDL 2.0、WS-I BP 1.1、WS-Security等,它能够很好地与各种其他Web服务实现进行交互。 5. **Spring集成**:在描述中提到,此版本包含Spring包,意味着它能够与...
3. **库和依赖**:包括各种安全相关的库和依赖,如Spring Security、OAuth2、JWT(JSON Web Tokens)等,用于实现身份验证和授权。 4. **文档**:提供详细的安装指南、API参考、使用示例等,帮助开发者理解和使用这...
"Spring+Security+2.0.x+参考文档.pdf" 和 "spring+security+参考文档.pdf" 是官方或非官方的Spring Security参考文档,它们包含了详尽的技术细节和使用示例。这些文档可以帮助你了解Spring Security的所有功能,...