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