`
wtnhwbb
  • 浏览: 166116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
xml 代码
applicationContext-security-acegi.xml
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">  
  3. <beans default-lazy-init="true" default-autowire="byName">  
  4.     <bean id="channelProcessingFilter"  
  5.           class="org.acegisecurity.securechannel.ChannelProcessingFilter">  
  6.         <property name="channelDecisionManager">  
  7.             <ref local="channelDecisionManager"/>    
  8.         </property>  
  9.         <property name="filterInvocationDefinitionSource">  
  10.             <value>  
  11.                 CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON   
  12.                 PATTERN_TYPE_APACHE_ANT   
  13.                 /j_security_check=REQUIRES_CAPTCHA_ONCE_ABOVE_THRESOLD_REQUESTS  
  14.             </value>  
  15.         </property>  
  16.     </bean>  
  17.   
  18.     <bean id="channelDecisionManager"  
  19.           class="org.acegisecurity.securechannel.ChannelDecisionManagerImpl">  
  20.         <property name="channelProcessors">    
  21.             <list>  
  22.                 <ref local="testOnceAfterMaxRequestsCaptchaChannelProcessor"/>  
  23.                 <ref local="alwaysTestAfterTimeInMillisCaptchaChannelProcessor"/>  
  24.                 <ref local="alwaysTestAfterMaxRequestsCaptchaChannelProcessor"/>  
  25.                 <ref local="alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor"/>  
  26.             </list>  
  27.         </property>  
  28.     </bean>  
  29.   
  30.     <!-- REQUIRES_CAPTCHA_ONCE_ABOVE_THRESOLD_REQUESTS -->  
  31.     <bean id="testOnceAfterMaxRequestsCaptchaChannelProcessor"  
  32.           class="org.acegisecurity.captcha.TestOnceAfterMaxRequestsCaptchaChannelProcessor">  
  33.         <property name="thresold">  
  34.             <value>0</value>  
  35.         </property>  
  36.         <property name="entryPoint">  
  37.             <ref bean="captchaEntryPoint"/>  
  38.         </property>  
  39.     </bean>  
  40.   
  41.     <!-- REQUIRES_CAPTCHA_ABOVE_THRESOLD_REQUESTS -->  
  42.     <bean id="alwaysTestAfterMaxRequestsCaptchaChannelProcessor"  
  43.           class="org.acegisecurity.captcha.AlwaysTestAfterMaxRequestsCaptchaChannelProcessor">  
  44.         <property name="thresold">  
  45.             <value>5</value>  
  46.         </property>  
  47.         <property name="entryPoint">  
  48.             <ref bean="captchaEntryPoint"/>  
  49.         </property>  
  50.     </bean>  
  51.   
  52.     <!-- REQUIRES_CAPTCHA_AFTER_THRESOLD_IN_MILLIS -->  
  53.     <bean id="alwaysTestAfterTimeInMillisCaptchaChannelProcessor"  
  54.           class="org.acegisecurity.captcha.AlwaysTestAfterTimeInMillisCaptchaChannelProcessor">  
  55.         <property name="thresold">  
  56.             <value>5000</value>  
  57.         </property>  
  58.         <property name="entryPoint">  
  59.             <ref bean="captchaEntryPoint"/>  
  60.         </property>  
  61.     </bean>  
  62.   
  63.     <!-- REQUIRES_CAPTCHA_BELOW_AVERAGE_TIME_IN_MILLIS_REQUESTS -->  
  64.     <bean  
  65.             id="alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor"  
  66.             class="org.acegisecurity.captcha.AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor">  
  67.         <property name="thresold">  
  68.             <value>20000</value>  
  69.         </property>  
  70.         <property name="entryPoint">  
  71.             <ref bean="captchaEntryPoint"/>  
  72.         </property>  
  73.     </bean>  
  74.   
  75.     <bean id="captchaEntryPoint"  
  76.           class="org.acegisecurity.captcha.CaptchaEntryPoint">  
  77.         <property name="captchaFormUrl">  
  78.             <value>/login.jsp?login_error=code_error</value>  
  79.         </property>  
  80.         <property name="includeOriginalRequest">  
  81.             <value>false</value>  
  82.         </property>  
  83.         <property name="includeOriginalParameters">  
  84.             <value>false</value>  
  85.         </property>  
  86.     </bean>  
  87.   
  88.     <bean id="captchaValidationProcessingFilter"  
  89.           class="org.acegisecurity.captcha.CaptchaValidationProcessingFilter">  
  90.         <property name="captchaService">  
  91.             <ref bean="captchaService"/>  
  92.         </property>  
  93.         <property name="captchaValidationParameter" value="j_captcha_response"/>  
  94.     </bean>  
  95.   
  96.     <!-- imageCaptchaService is injected into captchaImageCreateController as well as to captchaService beans -->  
  97.     <bean id="captchaService" class="com.systop.common.security.jcaptcha.JCaptchaServiceProxyImpl">  
  98.         <property name="jcaptchaService" ref="imageCaptchaService"/>  
  99.     </bean>  
  100.   
  101.     <bean id="imageCaptchaService" class="com.octo.captcha.service.image.DefaultManageableImageCaptchaService">  
  102.         <constructor-arg type="com.octo.captcha.service.captchastore.CaptchaStore" index="0">  
  103.             <ref bean="fastHashMapCaptchaStore"/>  
  104.         </constructor-arg>  
  105.         <!-- (1) which captcha Engine you use -->  
  106.         <constructor-arg type="com.octo.captcha.engine.CaptchaEngine" index="1">  
  107.             <ref bean="captchaEngineEx"/>  
  108.         </constructor-arg>  
  109.         <constructor-arg index="2">  
  110.             <value>180</value>  
  111.         </constructor-arg>  
  112.         <constructor-arg index="3">  
  113.             <value>100000</value>  
  114.         </constructor-arg>  
  115.         <constructor-arg index="4">  
  116.             <value>75000</value>  
  117.         </constructor-arg>  
  118.     </bean>  
  119.   
  120.     <bean id="fastHashMapCaptchaStore" class="com.octo.captcha.service.captchastore.FastHashMapCaptchaStore"/>  
  121.   
  122.     <!-- (2) you can define more than one captcha engine here -->  
  123.     <bean id="captchaEngineEx"  
  124.           class="com.systop.common.security.jcaptcha.engine.CaptchaEngineEx"/>  
  125.   
  126. </beans>  
applicationContext-security-captcha.xml
xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">  
  3. <beans default-lazy-init="true" default-autowire="byName">  
  4.     <!-- ======================== FILTER CHAIN ======================= -->  
  5.   
  6.     <!--  if you wish to use channel security, add "channelProcessingFilter," in front   
  7.         of "httpSessionContextIntegrationFilter" in the list below -->  
  8.     <!--   
  9.         FilterChainProxy会按顺序来调用这些filter,使这些filter能享用Spring ioc的功能,   
  10.         CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON定义了url比较前先转为小写   
  11.         PATTERN_TYPE_APACHE_ANT定义了使用Apache ant的匹配模式   
  12.         如果加入了验证码,则在logoutFilter后加入captchaValidationProcessingFilter   
  13.         如果加入channel验证,把channelProcessingFilter加到authenticationProcessingFilter之前   
  14.     -->  
  15.     <bean id="filterChainProxy"  
  16.         class="org.acegisecurity.util.FilterChainProxy">  
  17.         <property name="filterInvocationDefinitionSource">    
  18.             <value>  
  19.                 CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON   
  20.                 PATTERN_TYPE_APACHE_ANT   
  21.                 /**=httpSessionContextIntegrationFilter,logoutFilter,captchaValidationProcessingFilter,channelProcessingFilter,authenticationProcessingFilter,basicProcessingFilter,securityContextHolderAwareRequestFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor   
  22.             </value>  
  23.         </property>  
  24.     </bean>  
  25.   
  26.     <!-- ======================== AUTHENTICATION ======================= -->  
  27.   
  28.     <!--   
  29.         通过Providers提供认证者列表,如果一个认证提供者失败可以尝试另外一个认证提供者,以保证获取不同来源的身份认证,如   
  30.         DaoAuthenticationProvider 从数据库中读取用户信息验证身份   
  31.         AnonymousAuthenticationProvider 匿名用户身份认证   
  32.         RememberMeAuthenticationProvider 已存cookie中的用户信息身份认证   
  33.            
  34.         其它的还有   
  35.         AuthByAdapterProvider 使用容器的适配器验证身份   
  36.         CasAuthenticationProvider 根据Yale中心认证服务验证身份, 用于实现单点登陆   
  37.         JaasAuthenticationProvider 从JAAS登陆配置中获取用户信息验证身份   
  38.         RemoteAuthenticationProvider 根据远程服务验证用户身份   
  39.         RunAsImplAuthenticationProvider 对身份已被管理器替换的用户进行验证   
  40.         X509AuthenticationProvider 从X509认证中获取用户信息验证身份   
  41.         TestingAuthenticationProvider 单元测试时使用   
  42.            
  43.         每个认证者会对自己指定的证明信息进行认证,如DaoAuthenticationProvider仅对UsernamePasswordAuthenticationToken这个证明信息进行认证。   
  44.     -->  
  45.     <bean id="authenticationManager"  
  46.         class="org.acegisecurity.providers.ProviderManager">  
  47.         <property name="providers">  
  48.             <list>  
  49.                 <ref local="daoAuthenticationProvider" />  
  50.                 <ref local="anonymousAuthenticationProvider" />  
  51.                 <ref local="rememberMeAuthenticationProvider" />  
  52.                 <!-- testingAuthenticationProvider仅供测试环境用,正式生产平台请去除   
  53.                     <ref local="testingAuthenticationProvider"/> -->  
  54.             </list>  
  55.         </property>  
  56.         <!-- property name="sessionController">  
  57.             <ref bean="concurrentSessionController" />  
  58.         </property-->  
  59.     </bean>  
  60.   
  61.     <!-- 可以阻止某个用户名在已经成功登录进web应用的同时再进行一次成功的登录 -->  
  62.     <bean id="concurrentSessionController"  
  63.         class="org.acegisecurity.concurrent.ConcurrentSessionControllerImpl">  
  64.         <property name="maximumSessions">  
  65.             <value>1</value>  
  66.         </property>  
  67.         <property name="sessionRegistry">  
  68.             <ref local="sessionRegistry" />  
  69.         </property>  
  70.         <property name="exceptionIfMaximumExceeded" value="true" />  
  71.     </bean>  
  72.   
  73.     <bean id="sessionRegistry"  
  74.         class="org.acegisecurity.concurrent.SessionRegistryImpl" />  
  75.   
  76.     <!--   
  77.         jdbcDaoImpl 用于在数据中获取用户信息。   
  78.         acegi提供了用户及授权的表结构,但是您也可以自己来实现。   
  79.     -->  
  80.     <bean id="jdbcDaoImpl" class="com.systop.common.security.acegi.UserDetailService">  
  81.         <property name="userManager" ref="userManager"></property>    
  82.         <!-- property name="userCache" ref="userCache"></property-->    
  83.     </bean>  
  84.        
  85.     <!-- 缓存用户和资源相对应的权限信息 -->  
  86.     <bean id="userCache" class="org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">  
  87.         <property name="cache"><ref local="userCacheBackend"/></property>  
  88.     </bean>  
  89.       
  90.     <bean id="userCacheBackend" class="org.springframework.cache.ehcache.EhCacheFactoryBean">  
  91.        <property name="cacheManager">  
  92.             <ref local="cacheManager"/>  
  93.        </property>  
  94.         <property name="cacheName">  
  95.             <value>userCache</value>  
  96.         </property>  
  97.     </bean>  
  98.       
  99.     <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/>  
  100.       
  101.     <!-- 使用Md5算法加密 -->  
  102.     <bean id="passwordEncoder"  
  103.         class="org.acegisecurity.providers.encoding.Md5PasswordEncoder" />  
  104.   
  105.     <!--   
  106.         userDetailsService 定义jdbcDaoImpl从数据库获取用户信息   
  107.         userCache ehcache缓存user信息。   
  108.         passwordEncoder 取得密码后作加密   
  109.     -->  
  110.     <bean id="daoAuthenticationProvider"  
  111.         class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">  
  112.         <property name="userDetailsService" ref="jdbcDaoImpl" />  
  113.         <property name="userCache" ref="userCache" />  
  114.         <property name="passwordEncoder" ref="passwordEncoder" />  
  115.         <property name="saltSource"><null/></property>  
  116.     </bean>  
  117.   
  118.   
  119.     <!--   
  120.         <bean id="testingAuthenticationProvider"  
  121.         class="org.acegisecurity.providers.TestingAuthenticationProvider"/>  
  122.     -->  
  123.   
  124.     <!-- 自动接收 AuthenticationEvent 信息 -->  
  125.     <bean id="loggerListener"  
  126.         class="org.acegisecurity.event.authentication.LoggerListener" />  
  127.   
  128.     <!--  
  129.         用于处理HTTP头的认证信息,如从Spring远程协议(如Hessian和Burlap)或普通的浏览器如IE,Navigator的HTTP头中获取用户信息  
  130.     -->  
  131.     <bean id="basicProcessingFilter"<
分享到:
评论

相关推荐

    Acegi配置指南[整理].pdf

    在 Acegi 配置指南中,我们主要关注如何设置和配置 Acegi 框架来保护 Web 应用程序的安全。 首先,我们需要在 `web.xml` 文件中配置 Acegi 的过滤器。在示例代码中,定义了一个名为 `Acegi Filter Chain Proxy` 的...

    ldap与Acegi? ----Acegi配置文件解剖

    本文将深入探讨如何在Acegi配置文件中集成LDAP服务,以实现高效的用户身份验证和权限管理。 **LDAP简介** LDAP是一种轻量级目录访问协议,用于存储和检索分布式目录服务中的数据。它被广泛用于存储用户账户信息、...

    Acegi配置web下载,完整

    Acegi配置.mhtAcegi配置的相关配置的信息在里面有一些

    acegi配置文件

    acegi配置文件清单

    Acegi 详细配置说明

    例如,为了配置认证管理器,我们可以创建一个`UserDetailsService`实现,然后在Acegi配置中引用它: ```xml &lt;bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager"&gt; ...

    Acegi配置指南

    在配置Acegi时,首先需要在`web.xml`文件中定义一个名为`Acegi Filter Chain Proxy`的过滤器。这个过滤器是Acegi安全机制的核心,它负责拦截所有请求并根据配置执行相应的安全策略。下面是一段典型的`web.xml`配置...

    Acegi 数据库配置安全策略 源代码及图解

    4. **XML配置转换**:在传统的Acegi配置中,安全规则通常写在XML配置文件中。这个资源可能包含了将这些静态XML配置转换为动态数据库配置的方法,这样可以更方便地根据用户角色和权限来调整安全策略。 5. **过滤器与...

    Acegi开发项目教程.pdf

    本教程附带了可运行的示例代码,这将极大地帮助读者理解和调试Acegi配置。通过实践这些示例,读者将能够更深入地理解Acegi的工作方式,以及如何根据项目需求进行定制。 总的来说,Acegi(现为Spring Security)是一...

    acegi学习整理合集

    "浅谈Acegi配置 - Spring - Java - JavaEye论坛.mht"很可能深入讨论了Acegi的配置细节,包括如何设置安全性过滤器链,配置不同的访问控制策略,以及如何处理异常情况。在Acegi中,配置是非常关键的,因为它定义了...

    acegi资料大全-全集

    `浅谈Acegi配置.mht`系列文件可能探讨了Acegi的配置过程,包括基本的配置元素如`&lt;security:global-method-security&gt;`和`&lt;security:http&gt;`,以及如何定义权限表达式和自定义过滤器。Acegi的配置是其强大之处,但也...

    Acegi(四):Acegi初体验及初解剖

    至于文件名"myOwnAcegi",可能是博主自定义的Acegi配置或示例代码。这些文件可能包含了实际的XML配置、自定义的安全类或者用于测试的简单应用代码。通过阅读这些代码,读者可以更直观地学习如何在实际项目中应用...

    acegi 权限控制按钮

    为了在Tomcat服务器上运行,你需要确保Tomcat版本与Acegi兼容,并且正确地设置了`WEB-INF/web.xml`中的Spring和Acegi配置。这通常包括定义Spring的上下文加载器监听器,以及Acegi的安全过滤器链。在部署时,只需将...

    acegi帮助资料

    开发者可以通过这份指南学习如何编写自定义的安全组件,以及如何调试和优化Acegi配置。 《Acegi-springsecurity1.0.7.pdf》可能是Spring Security的早期版本文档,因为Spring Security是从Acegi发展而来。这份文档...

    使用 Acegi 保护 Java 应用程序: 续二

    在"使用 Acegi 保护 Java 应用程序:续二"这篇博文中,作者可能详细介绍了如何集成 Acegi 安全框架到 Java 应用程序中,以及如何配置和定制其安全策略。以下是对 Acegi 安全框架及其应用的一些关键知识点的详解: 1...

    使用 Acegi 保护 Java 应用程序: 续一

    在这里,我们将更进一步,讨论如何配置和实现 Acegi 的具体功能。 首先,我们需要在项目中引入 Acegi 相关的依赖库。这通常通过 Maven 或者 Gradle 等构建工具来完成,确保添加了 Acegi 的核心库和其他必要的 ...

    Acegi将资源权限数据存储到数据库.pdf

    在传统的Acegi配置中,资源和角色的关系通常是硬编码在XML配置文件内的,例如: ```xml &lt;bean id="filterSecurityInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor"&gt; ...

Global site tag (gtag.js) - Google Analytics