<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0

    applicationContext-acegi-security.xml
    1.filterChainProxy配置
    <bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy">
      <property name="filterInvocationDefinitionSource">
       <value>
        CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
        PATTERN_TYPE_APACHE_ANT
        /**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
       </value>
      </property>
     </bean>

    2.httpSessionContextIntegrationFilter配置
    <bean id="httpSessionContextIntegrationFilter" class="org.acegisecurity.context.HttpSessionContextIntegrationFilter"/>

    3.logoutFilter配置
    <bean id="logoutFilter" class="org.acegisecurity.ui.logout.LogoutFilter">
      <constructor-arg value="/index.jsp"/> <!-- URL redirected to after logout -->
      <constructor-arg>
       <list>
        <ref bean="rememberMeServices"/>
        <bean class="org.acegisecurity.ui.logout.SecurityContextLogoutHandler"/>
       </list>
      </constructor-arg>
     </bean>

    4.authenticationProcessingFilter配置
    <bean id="authenticationProcessingFilter" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
      <property name="authenticationManager" ref="authenticationManager"/>
      <property name="authenticationFailureUrl" value="/login.jsp?login_error=1"/>
      <property name="defaultTargetUrl" value="/"/>
      <property name="filterProcessesUrl" value="/j_acegi_security_check"/>
      <property name="rememberMeServices" ref="rememberMeServices"/>
     </bean>

    5.securityContextHolderAwareRequestFilter配置
    <bean id="securityContextHolderAwareRequestFilter" class="org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter"/>

    6.rememberMeProcessingFilter配置
    <bean id="rememberMeProcessingFilter" class="org.acegisecurity.ui.rememberme.RememberMeProcessingFilter">
      <property name="authenticationManager" ref="authenticationManager"/>
      <property name="rememberMeServices" ref="rememberMeServices"/>
     </bean>

    7.anonymousProcessingFilter配置
    <bean id="anonymousProcessingFilter" class="org.acegisecurity.providers.anonymous.AnonymousProcessingFilter">
      <property name="key" value="changeThis"/>
      <property name="userAttribute" value="anonymousUser,ROLE_ANONYMOUS"/>
     </bean>

    8.exceptionTranslationFilter配置
    <bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter">
      <property name="authenticationEntryPoint">
       <bean class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
        <property name="loginFormUrl" value="/login.jsp"/>
        <property name="forceHttps" value="false"/>
       </bean>
      </property>
      <property name="accessDeniedHandler">
       <bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl">
        <property name="errorPage" value="/accessDenied.jsp"/>
       </bean>
      </property>
     </bean>

    9.filterInvocationInterceptor配置
    <bean id="filterInvocationInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
      <property name="authenticationManager" ref="authenticationManager"/>
      <property name="accessDecisionManager" ref="accessDecisionManager"/>
      <property name="objectDefinitionSource">
       <value>
        PATTERN_TYPE_APACHE_ANT
        /mainFrame.html=admin,user
        /文件夾1/*.html*=admin,user
        /文件夾2/*.html*=admin,user
        /文件夾3/*.html*=admin
        /accessDenied.jsp*=ROLE_ANONYMOUS
       </value>
      </property>
     </bean>

    10.accessDecisionManager配置
    <bean id="accessDecisionManager" class="org.acegisecurity.vote.AffirmativeBased">
      <property name="allowIfAllAbstainDecisions" value="false"/>
      <property name="decisionVoters">
       <list>
        <bean class="org.acegisecurity.vote.RoleVoter">
         <property name="rolePrefix" value=""/>
        </bean>
        <bean class="org.acegisecurity.vote.AuthenticatedVoter"/>
       </list>
      </property>
     </bean>

    11.rememberMeServices配置

     <bean id="rememberMeServices" class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices">
      <property name="userDetailsService" ref="userDetailsService"/>
      <property name="key" value="changeThis"/>
     </bean>

    12.authenticationManager配置

     <bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">
      <property name="providers">
       <list>
        <ref local="daoAuthenticationProvider"/>
        <bean class="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">
         <property name="key" value="changeThis"/>
        </bean>
        <bean class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider">
         <property name="key" value="changeThis"/>
        </bean>
       </list>
      </property>
     </bean>

    13.daoAuthenticationProvider配置

     <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
      <property name="userDetailsService" ref="userDetailsService"/>
      <property name="userCache">
       <bean class="org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
        <property name="cache">
         <bean class="org.springframework.cache.ehcache.EhCacheFactoryBean">
          <property name="cacheManager">
           <bean class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
            <property name="configLocation" value="classpath:ehcache.xml"/>
           </bean>
          </property>
          <property name="cacheName" value="userCache"/>
         </bean>
        </property>
       </bean>
      </property>
     </bean>

    14.methodSecurityInterceptor配置
     
     <bean id="methodSecurityInterceptor" class="org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor">
      <property name="authenticationManager" ref="authenticationManager"/>
      <property name="accessDecisionManager" ref="accessDecisionManager"/>
      <property name="objectDefinitionSource">
        <value>
         com.rain.wsh.service.IUserService.get*=IS_AUTHENTICATED_ANONYMOUSLY
          com.rain.wsh.service.IUserService.create*=IS_AUTHENTICATED_ANONYMOUSLY
          com.rain.wsh.service.IUserService.update*=IS_AUTHENTICATED_ANONYMOUSLY
          com.rain.wsh.service.IUserService.delete*=IS_AUTHENTICATED_ANONYMOUSLY 
       </value>
      </property>
     </bean>

    15.loggerListener配置

     <!-- This bean is optional; it isn't used by any other bean as it only listens and logs -->
     <bean id="loggerListener" class="org.acegisecurity.event.authentication.LoggerListener"/>

    注:userDetailsService定義為:
    <bean id="userDetailsService" class="com.rain.wsh.service.impl.UserDetailsServiceImpl"/>

    package com.rain.wsh.service.impl;

    import org.acegisecurity.userdetails.UserDetails;
    import org.acegisecurity.userdetails.UserDetailsService;
    import org.acegisecurity.userdetails.UsernameNotFoundException;
    import org.springframework.dao.DataAccessException;

    import com.rain.wsh.dao.IUserDAO;

    public class UserDetailsServiceImpl implements UserDetailsService {
     private final Logger log = Logger.getLogger(getClass());
     
     private IUserDAO userDAO;
     
     /**
      * @return the userDAO
      */
     public IUserDAO getUserDAO() {
      return userDAO;
     }

     /**
      * @param userDAO the userDAO to set
      */
     public void setUserDAO(IUserDAO userDAO) {
      this.userDAO = userDAO;
     }
     
     /*
      * (non-Javadoc)
      * @see org.acegisecurity.userdetails.UserDetailsService#loadUserByUsername(java.lang.String)
      */
     public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException, DataAccessException {
      
      UserDetails user = userDAO.getUserByName(userName);
      if (user == null) {
       log.error("The user was not found:" + userName);
       throw new UsernameNotFoundException("The user was not found:" + userName);
      }
      return user;
     }

    }

    注意user必須實(shí)現(xiàn)Serializable, UserDetails

    posted on 2007-03-29 10:32 周銳 閱讀(727) 評(píng)論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 亚洲国产高清人在线| 天天天欲色欲色WWW免费| 香蕉免费在线视频| 一级中文字幕免费乱码专区| 国产成人综合久久精品亚洲| 亚洲av永久无码精品秋霞电影秋| 亚洲精品无码av片| 综合一区自拍亚洲综合图区| 爱爱帝国亚洲一区二区三区| 亚洲av无码专区国产不乱码| 亚洲国产成人AV网站| 免费看一级一级人妻片| 人成免费在线视频| 一区二区三区无码视频免费福利| 精品四虎免费观看国产高清午夜| 久久久免费的精品| 99久久免费国产香蕉麻豆| 性色av免费观看| 国产午夜免费秋霞影院| 亚洲伦乱亚洲h视频| 亚洲中文字幕无码一久久区| 亚洲AV无码久久精品蜜桃| 亚洲精品日韩专区silk| 亚洲一区欧洲一区| 美女黄色毛片免费看| 国产在线观看免费av站| 99re6在线视频精品免费下载| 九九精品免费视频| 免费吃奶摸下激烈视频| 国精无码欧精品亚洲一区| 亚洲欧洲日产国产最新| 亚洲人成电影网站色www| 亚欧国产一级在线免费| 国产午夜无码精品免费看动漫| 99精品视频在线视频免费观看| 成人毛片免费观看视频| 啊v在线免费观看| 亚洲av中文无码乱人伦在线r▽| 亚洲国产情侣一区二区三区| 日日摸日日碰夜夜爽亚洲| 中文字幕成人免费高清在线视频 |