Acegi配置指南Word文档下载推荐.docx
- 文档编号:20968044
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:33
- 大小:674.26KB
Acegi配置指南Word文档下载推荐.docx
《Acegi配置指南Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Acegi配置指南Word文档下载推荐.docx(33页珍藏版)》请在冰豆网上搜索。
url-pattern>
/*<
/url-pattern>
/filter-mapping>
/web-app>
说明:
采用Web的过滤器,构造一个过滤器链代理。
初始参数:
参数名
描述
targetBean
从Spring中查找Bean名一致的类,交由该类处理真正的Web过滤。
推荐使用。
targetClass
从JVM中查找类名一致的类,交由该类处理真正的Web过滤。
不同J2EE容器可能会导致不同结果,会被targetBean参数覆盖。
不推荐使用。
init
初始值。
可能值包括:
!
--[if!
supportLists]-->
Ø
--[endif]-->
lazy:
延迟加载。
主要解决由于Spring采用ContextLoaderServlet加载模式时有可能会晚于该filter而导致filter加载失败的问题。
lifecycle
指定生命周期。
servlet-container-managed:
容器托管。
一般情况下,Acegi的Filter采用Spring的AOP回调,启动和结束调用beforeXxx()和afterXxx()方法。
如果采用J2EE规范中提供的filter方法init()和destroy(),设置该参数。
acegi.xml配置
过滤器链(filterChainProxy)
beans>
...
--过滤器链代理-->
beanid="
filterChainProxy"
class="
org.acegisecurity.util.FilterChainProxy"
>
propertyname="
filterInvocationDefinitionSource"
value>
PATTERN_TYPE_APACHE_ANT
/**=httpSessionContextIntegrationFilter,
basicProcessionFilter,
exceptionTranslationFilter,
filterInvocationInterceptor
/value>
/property>
/bean>
/beans>
过滤器链,配置一组过滤器。
参数:
参数
filterInvocationDefinitionSource
指定一组过滤器的Bean名。
过滤器:
过滤器
httpSessionContextIntegrationFilter
负责完成Acegi上下文与HTTPSession同步。
basicProcessionFilter
负责完成用户的认证。
exceptionTranslationFilter
负责处理认证和授权中出现的异常。
filterInvocationInterceptor
负责完成用户的授权。
SpringBean关系图:
vml]-->
每个图块为一个SpringBean。
斜体Bean和同名正体Bean为同一个Bean。
HTTP会话集成(httpSessionContextIntegrationFilter)
--HTTP会话集成-->
httpSessionContextIntegrationFilter"
org.acegisecurity.context.HttpSessionContextIntegrationFilter"
allowSessionCreation"
value="
false"
/>
如果HTTPSession中存放了之前的认证信息,将其还原到Acegi上下文中。
退出应用时会清除掉HTTPSession中的认证信息。
Bean
HTTP会话集成
allowSessionCreation
是否创建Session。
true:
创建Session。
默认值。
false:
不创建Session。
基本认证(basicProcessionFilter)
--HTTP基本认证-->
basicProcessionFilter"
org.acegisecurity.ui.basicauth.BasicProcessingFilter"
authenticationManager"
ref="
authenticationEntryPoint"
basicProssingFilterEntryPoint"
--认证管理器-->
org.acegisecurity.providers.ProviderManager"
providers"
list>
reflocal="
daoAuthenticationProvider"
/list>
--认证源提供者-->
org.acegisecurity.providers.dao.DaoAuthenticationProvider"
userDetailsService"
inMemDaoImpl"
--用户信息提供者(内存级)-->
org.acegisecurity.userdetails.memory.InMemoryDaoImpl"
userMap"
admin=password,ROLE_ADMIN<
--HTTP基本认证入口点-->
org.acegisecurity.ui.basicauth.BasicProcessingFilterEntryPoint"
realmName"
AcegiDemoRealm"
负责完成用户的认证,会调用认证管理器进行用户认证。
如果认证不成功调用EntryPoint,构造返回信息,如401,浏览器会弹出对话框要求用户输入用户名和密码。
需要指派认证管理器、认证源和EntryPoint。
basicProcessingFilter
基本认证过滤器
authenticationManager
指派认证管理器。
authenticationEntryPoint
指派EntryPoint。
认证管理器
providers
指派认证源提供者。
多值。
daoAuthenticationProvider
DAO认证源提供者
userDetailsService
指派认证实现服务。
inMemDaoImpl
用户信息源(内存)
userMap
用户名/密码/角色信息,写死在配置文件中。
一般用于演示。
格式:
uid=pw,role
basicProssingFilterEntryPoint
基本认证入口点
realmName
返回到浏览器的提示信息:
域名。
异常处理(exceptionTranslationFilter)
--异常处理-->
exceptionTranslationFilter"
org.acegisecurity.ui.ExceptionTranslationFilter"
basicProssionFilterEntryPoint"
createSessionAllowed"
如果出现异常,调用EntryPoint。
异常处理过滤器
createSeesionAllowed
授权拦截(filterInvocationInterceptor)
--授权拦截-->
filterInvocationInterceptor"
org.acegisecurity.intercept.web.FilterSecurityInterceptor"
accessDecisionManager"
httpRequestAccessDecisionManager"
objectDefinitionSource"
/securedpage.jsp=ROLE_ADMIN
--授权策略-->
org.acegisecurity.vote.AffirmativeBased"
decisionVoters"
roleVoter"
--投票策略实现-->
org.acegisecurity.vote.RoleVoter"
给受保护的Web资源指定角色,指定授权策略。
授权拦截器
accessDecisionManager
指派访问策略管理器。
objectDefinitionSource
Web资源/角色信息,写死在配置文件中。
/uri=role
授权策略管理器
decisionVoters
指派投票策略。
roleVoter
投票策略实现
无
监听器
--认证监听器-->
authenticationLoggerListener"
org.acegisecurity.event.authentication.LoggerListener"
--授权监听器-->
authorizationLoggerListener"
org.acegisecurity.event.authorization.LoggerListener"
监听Acegi的认证/授权过程,并生成日志。
完整关系图
Acegi配置指南
(2)
认证源配置
DAO认证源
--认证源提供者DAO-->
jdbcDaoImpl"
userCache"
--
passwordEncoder"
plaintextPasswordEncoder"
md5PasswordEncoder"
-->
userProperties"
beanclass="
org.springframework.beans.factory.config.PropertiesFactoryBean"
location"
classpath:
users.properties"
--用户信息提供者(数据库级)-->
org.acegisecurity.userdetails.jdbc.JdbcDaoImpl"
usersByUsernameQuery"
selectusername,password,enabledfromuserswhereusername=?
authoritiesByUsernameQuery"
selectusername,authorityfromuserswhereusername=?
selectusername,authorityfromauthoritieswhereusername=?
dataSource"
--明文密码编码-->
org.acegisecurity.providers.encoding.PlaintextPasswordEncoder"
ignorePasswordCase"
true"
--MD5密码编码-->
org.acegisecurity.providers.encoding.Md5PasswordEncoder"
encodeHashAsBase64"
--用户信息缓存-->
org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache"
cache"
userCacheBackend"
Dao认证源提供者
指派用户信息提供者(必需)
passwordEncoder
指派密码编码器
userCache
指派缓存
saltSource
指定加盐模式
forcePrincipalAsString
hideUserNotFoundExceptions
includeDetailsObject
messageSource
postAuthenticationChecks
preAuthenticationChecks
userProperties
Properties,可以指定Properties文件路径。
Map,写死在xml中。
jdbcDaoImpl
用户信息源(数据库)
usersByUsernameQuery
查询用户信息的SQL①
authoritiesByUsernameQuery
查询用户权限的SQL②
dataSource
指定数据源
plaintextPasswordEncoder
密码编码器(明文)
ignorePasswordCase
是否忽略密码大小写,默认值为否
md5PasswordEncoder
密码编码器(MD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Acegi 配置 指南