spring 安全框架
?
</http>
<user name="bob" password="bobspassword" authorities="ROLE_USER" />
</user-service>
</Authentication-provider>
<form-login />
<anonymous />
<http-basic />
<logout />
<remember-me />
</http>
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page='/login.jsp'/>
</http>
<http-basic />
</http>
<user name="bob" password="4e7421b1b8765d8f9406d87e7cc6aa784c4ab97f" authorities="ROLE_USER" />
</user-service>
</Authentication-provider>
<intercept-url pattern="/**" access="ROLE_USER" requires-channel="any"/>
…
</http>
</port-mappings>
</http>
</http>
</http>
protect-pointcut
添加安全切点
</global-method-security>
<protect method="get*" access="ROLE_ADMIN,ROLE_USER" />
<protect method="doSomething" access="ROLE_USER" />
</intercept-methods>
</bean:bean>
...
</bean>
spring安全包括生产,质量Authentication Provider
实现叫做DaoAuthentication Provider。
此身份验证提供兼容所有的身份验证机制UsernamePasswordAuthentication
标记
,并可能是最常用的范围内提供,最喜欢的其他认证供应商,在DaoAuthentication提供商利用了UserDetailsService ,以查找的用户名,密码和GrantedAuthority [ ]与大多数的其他认证供应商,利用UserDetailsService,
这实际上需要身份验证提供的密码将提交和供应商将实际评估性或其他有效的密码,在身份验证请求对象
<property name="saltSource" ref bean="saltSource"/>
<property name="passwordEncoder" ref="passwordEncoder"/>
</bean>
该PasswordEncoder和SaltSource是可选。这个PasswordEncoder提供的编码和解码的密码中提出的UserDetails对象返回的配置UserDetailsService一个SaltSource使密码填入一个“盐” ,这提高了安全密码验证库。PasswordEncoder的实现提供了Spring安全涵盖的MD5 ,SHA和明文编码. 实现两个SaltSource还规定:所有SystemWideSaltSource编码与密码相同的盐,ReflectionSaltSource ,其中检查某一财产归还UserDetails对象,以获取盐. 请参阅的Javadoc的进一步细节,这些可选功能. 除了上述的特性,该DaoAuthentication提供支持可选缓存UserDetails对象该UserCache界面使DaoAuthentication提供商放置一个UserDetails对象的缓存,并找回它从缓存的企图后,随后验证的相同的用户名. 默认情况下, DaoAuthentication供应商使用NullUserCache ,可实现无缓存一个可用的缓存执行还规定, EhCacheBasedUserCache ,这是配置如下
<bean id="daoAuthentication Provider"
ref="userDetailsService"/>
<property name="userCache" ref="userCache"/>
</bean>
<bean id="cacheManager" value="classpath:/ehcache-failsafe.xml"/>
</bean>
<bean id="userCacheBackend" ref="cacheManager"/>
<property name="cacheName" value="userCache"/>
</bean>
<bean id="userCache" ref="userCacheBackend"/>
</bean>
所有Spring安全EH-CACHE的实现(包括EhCacheBasedUserCache )要求EH-CACHE缓存Cache对象。Cache对象可以获得从你喜欢的地方,但我们建议你使用Spring的工厂类如上述配置.如果使用Spring的工厂类,请参阅Spring文件进一步详细说明如何优化缓存存储位置,内存使用情况,驱逐政策,超时等
属性名
作用
"realm"
如果这个没有内容就让范围默认为Spring Security Application
"Spring Security Application"
常量字符串
"pattern"
如果为空报path attribute cannot be empty or null路径属性不能为空或null
"session-fixation-protection"
被一个叫做registerSessionFixationProtectionFilter方法调用
"none"
为none常量字符串
"newSession"
"migrateSession"
是否设置防止固定会话攻击的属性
"path-type"
如果此属性为空那么默认设置为ant
org.springframework.security.util.AntUrlPathMatcher
Ant path strategy for URL matching.
Ant的URL匹配路径策略
"ant"
ant的常量字符串
"regex"
如果path-type为regex那么就使用org.springframework.security.util.RegexUrlPathMatcher
"filters"
如果此属性不为none那么报Currently only 'none' is supported as the custom filters attribute
"none"
"access"
"requires-channel"
看你需要那种访问协议,可以为http;https;any如果都不是就报Unsupported channel不能支持的信道。
"http"
常量字符串
"https"
常量字符串
"any"
常量字符串
"method"
为空方法设置为null
"create-session"
是否创建会话,3个选项always;never;ifRequired
"ifRequired"
常量字符串
"always"
常量字符串
"never"
常量字符串
"lowercase-comparisons"
小写字体的区分有2个属性 true;false
"true"
常量字符串
"auto-config"
默认情况下autoConfig为false如果设置auto-config有值autoConfig为true
"false"
常量字符串
"servlet-api-provision"
增加servlet-api整合过滤器,如果为空就设置为true
"true"
常量字符串
"access-decision-manager-ref"
设置访问管理参数为http;如果没有设置访问管理id就设置为_accessManager
"user-service-ref"
如果不为null就设置userDetailsService
"entry-point-ref"
我们需要建立主要的登入点首先检查自定义的登入点是set,非null就设置。
"once-per-request"
如果设置为false程序将设置observeOncePerRequest为false
"access-denied-page"
如果非null设置访问被拒绝后的显示页面