Acegi 的配置看起来非常复杂,但事实上在实际项目的安全应用中我们并不需要那么多功能,清楚的了解Acegi配置中各项的功能,有助于我们灵活的运用Acegi于实践中。
方法/步骤1在Web.xml中的配置
1)FilterToBeanProxy Acegi通过实现了Filter接口的FilterToBeanProxy提供一种特殊的使用Servlet Filter的方式,它委托Spring中的Bean -- FilterChainProxy来完成过滤功能,这好处是简化了web.xml的配置,并且充分利用了Spring IOC的优势。FilterChainProxy包含了处理认证过程的filter列表,每个filter都有各自的功能。
filter filter-name Acegi Filter Chain Proxy /filter-name filter-class org.acegisecurity.util.FilterToBeanProxy /filter-class init-param param-name targetClass /param-name param-value org.acegisecurity.util.FilterChainProxy /param-value /init-param /filter
2)filter-mapping filter-mapping 限定了FilterToBeanProxy的URL匹配模式,只有*.do和*.jsp和/j_acegi_security_check 的请求才会受到权限控制,对javascript,css等不限制。
filter-mapping filter-name Acegi Filter Chain Proxy /filter-name url-pattern *.do /url-pattern /filter-mapping filter-mapping filter-name Acegi Filter Chain Proxy /filter-name url-pattern *.jsp /url-pattern /filter-mapping filter-mapping filter-name Acegi Filter Chain Proxy /filter-name url-pattern /j_acegi_security_check /url-pattern /filter-mapping
3)HttpSessionEventPublisher listener 的HttpSessionEventPublisher用于发布HttpSessionApplicationEvents和HttpSessionDestroyedEvent事件给spring的applicationcontext。
listener listener-class org.acegisecurity.ui.session.HttpSessionEventPublisher /listener-class /listener
2在applicationContext-acegi-security.xml中
2.2.1 FILTER CHAIN
FilterChainProxy会按顺序来调用这些filter,使这些filter能享用Spring ioc的功能, CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON定义了url比较前先转为小写, PATTERN_TYPE_APACHE_ANT定义了使用Apache ant的匹配模式
bean id= filterChainProxy >END基础认证1
authenticationManager 起到认证管理的作用,它将验证的功能委托给多个Provider,并通过遍历Providers, 以保证获取不同来源的身份认证,若某个Provider能成功确认当前用户的身份,authenticate()方法会返回一个完整的包含用户授权信息的Authentication对象,否则会抛出一个AuthenticationException。Acegi提供了不同的AuthenticationProvider的实现,如: DaoAuthenticationProvider 从数据库中读取用户信息验证身份 AnonymousAuthenticationProvider 匿名用户身份认证 RememberMeAuthenticationProvider 已存cookie中的用户信息身份认证 AuthByAdapterProvider 使用容器的适配器验证身份 CasAuthenticationProvider 根据Yale中心认证服务验证身份, 用于实现单点登陆 JaasAuthenticationProvider 从JASS登陆配置中获取用户信息验证身份 RemoteAuthenticationProvider 根据远程服务验证用户身份 RunAsImplAuthenticationProvider 对身份已被管理器替换的用户进行验证 X509AuthenticationProvider 从X509认证中获取用户信息验证身份 TestingAuthenticationProvider 单元测试时使用
每个认证者会对自己指定的证明信息进行认证,如DaoAuthenticationProvider仅对UsernamePasswordAuthenticationToken这个证明信息进行认证。
bean id= authenticationManager >2
daoAuthenticationProvider 进行简单的基于数据库的身份验证。DaoAuthenticationProvider获取数据库中的账号密码并进行匹配,若成功则在通过用户身份的同时返回一个包含授权信息的Authentication对象,否则身份验证失败,抛出一个AuthenticatiionException。
bean id= daoAuthenticationProvider >3
passwordEncoder 使用加密器对用户输入的明文进行加密。Acegi提供了三种加密器:PlaintextPasswordEncoder—默认,不加密,返回明文.ShaPasswordEncoder—哈希算法(SHA)加密Md5PasswordEncoder—消息摘要(MD5)加密
bean id= passwordEncoder >END经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。展开阅读全部换一批相关经验密码怎样安全配置?2014.10.03汽车安全配置介绍2017.07.11Windows7系统安全配置2017.12.07服务器系统维护与安全配置2015.08.24主机如何安装和配置安全狗2016.06.28今日支出元写经验 有钱赚 >>yangyikui613作者的经验如何做出美味的银耳雪梨粥怎么为新生儿选择代乳品谷歌开发者工具如何脱离窗口UML 的九种模型图存储过程的语法使用 如要投诉,请到百度经验投诉中心,如要提出意见、建议, 请到百度经验管理吧反馈。此内容有帮助?0
本文链接: http://acegi0.immuno-online.com/view-724498.html