我的JAVA

          我的門戶
          隨筆 - 5, 文章 - 0, 評論 - 2, 引用 - 0
          數(shù)據(jù)加載中……

          Acegi配置指南(3)

          認證模式配置(一)

          HTTP基本認證

          HTTP基本認證利用瀏覽器的認證窗口搜集用戶名和密碼,以下是各個瀏覽器的效果圖:




          IE6下的效果圖

          IE7下的效果圖

          Ø  FireFox下的效果圖

           

          同時,還加入了退出、免登錄和匿名三個過濾器。

          代碼:

          <!-- 退出 -->

          <bean id="logoutFilter" class="org.acegisecurity.ui.logout.LogoutFilter">

              <constructor-arg value="/index.jsp" />

              <constructor-arg>

                 <list>

                     <ref local="rememberMeServices" />

                     <ref local="securityContextLogoutHandler" />

                 </list>

              </constructor-arg>

          </bean>

          <bean id="securityContextLogoutHandler" class="org.acegisecurity.ui.logout.SecurityContextLogoutHandler">

              <property name="invalidateHttpSession" value="true" />

          </bean>

           

          <!-- HTTP基本認證 -->

          <bean id="basicProcessionFilter" class="org.acegisecurity.ui.basicauth.BasicProcessingFilter">

              <property name="authenticationManager" ref="authenticationManager" />

              <property name="authenticationEntryPoint" ref="basicProssingFilterEntryPoint" />

              <property name="rememberMeServices" ref="rememberMeServices" />

          </bean>

          <!-- 認證管理器 -->

          <bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">

              <property name="providers">

                 <list>

                     <ref local="daoAuthenticationProvider" />

                     <ref local="anonymousAuthenticationProvider" />

                     <ref local="rememberMeAuthenticationProvider" />

                 </list>

              </property>

          </bean>

          <!-- DAO認證源提供者 -->

          <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">

              <property name="userDetailsService" ref="inMemDaoImpl" />

          </bean>

          <!-- 用戶信息提供者(內(nèi)存) -->

          <bean id="inMemDaoImpl" class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">

              <property name="userMap">

                 <value>admin=password,ROLE_ADMIN</value>

              </property>

          </bean>

          <!-- HTTP基本認證入口點 -->

          <bean id="basicProssingFilterEntryPoint" class="org.acegisecurity.ui.basicauth.BasicProcessingFilterEntryPoint">

              <property name="realmName" value="Acegi Demo Realm" />

          </bean>

           

          <!-- 免登錄認證 -->

          <bean id="rememberMeProcessingFilter" class="org.acegisecurity.ui.rememberme.RememberMeProcessingFilter">

              <property name="authenticationManager" ref="authenticationManager" />

              <property name="rememberMeServices" ref="rememberMeServices" />

          </bean>

          <!-- 免登錄服務 -->

          <bean id="rememberMeServices" class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices">

              <property name="userDetailsService" ref="inMemDaoImpl" />

              <property name="key" value="springRocks" />

              <property name="alwaysRemember" value="true" />

          </bean>

          <!-- 免登錄認證源提供者 -->

          <bean id="rememberMeAuthenticationProvider" class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider">

              <property name="key" value="springRocks" />

          </bean>

           

          <!-- 匿名認證 -->

          <bean id="anonymousProcessingFilter" class="org.acegisecurity.providers.anonymous.AnonymousProcessingFilter">

              <property name="key" value="foobar" />

              <property name="userAttribute" value="anonymousUser,ROLE_ANONYMOUS" />

          </bean>

          <!-- 匿名認證源提供者 -->

          <bean id="anonymousAuthenticationProvider" class="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">

              <property name="key" value="foobar" />

          </bean>

          說明:

          在基本認證過濾器之前加入退出過濾器,之后加入免登錄過濾器和匿名過濾器。參數(shù):

          Bean

          參數(shù)

          描述

          logoutFilter
          退出過濾器

          構(gòu)造參數(shù)1

          指定退出后的重定向url

          構(gòu)造參數(shù)2

          指派退出的執(zhí)行句柄,多值

          Ø  退出免登錄服務

          Ø  退出安全上下文

          securityContextLogoutHandler
          安全上下文退出句柄

          invalidateHttpSession

          是否讓HTTP會話失效

          basicProcessingFilter
          基本認證過濾器

          authenticationManager

          指派認證管理器

          authenticationEntryPoint

          指派EntryPoint

          rememberMeServices

          指派免登錄服務

          authenticationManager
          認證管理器

          providers

          指派認證源提供者,多值

          Ø  DAO認證源提供者

          Ø  免登錄認證源提供者

          Ø  匿名認證源提供者

          daoAuthenticationProvider
          DAO
          認證源提供者

          userDetailsService

          指派用戶信息源

          inMemDaoImpl
          用戶信息源(內(nèi)存)

          userMap

          用戶信息

          basicProssingFilterEntryPoint
          基本認證入口點

          realmName

          返回到瀏覽器的提示信息:域名。

          rememberMeProcessingFilter

          免登錄過濾器

          authenticationManager

          指派認證管理器

          rememberMeServices

          指派免登錄服務

          rememberMeServices

          免登錄服務

          userDetailsService

          指派用戶信息源

          key

          指定密鑰

          alwaysRemember

          是否永久提供免登錄服務,包括退出瀏覽器(HTTP會話)

          rememberMeAuthenticationProvider

          免登錄認證源提供者

          key

          指定密鑰,和免登錄服務的密鑰保持一致

          anonymousProcessingFilter

          匿名過濾器

          userAttribute

          指定匿名登錄的用戶和角色,格式:

          uid,role

          key

          指定密鑰

          anonymousAuthenticationProvider
          匿名認證源提供者

          key

          指定密鑰,和匿名過濾器的密鑰保持一致

          Spring Bean關(guān)系圖:


          說明:每個圖塊為一個Spring Bean斜體Bean和同名正體Bean為同一個Bean

          問題:

          為什么加入了“退出”之后,還是沒有真正退出Acegi安全上下文?用戶還是能登錄被保護頁面?

          posted on 2010-02-23 13:53 xuyang 閱讀(512) 評論(0)  編輯  收藏 所屬分類: Acegi


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 甘洛县| 江津市| 德清县| 宁夏| 庐江县| 铁力市| 梨树县| 临泽县| 台北县| 泾川县| 房产| 永登县| 天祝| 图片| 拜城县| 稻城县| 梁山县| 蒲江县| 钦州市| 平原县| 鹤岗市| 都安| 巫山县| 营口市| 西乌珠穆沁旗| 濮阳市| 太和县| 达孜县| 星子县| 乌兰县| 潜江市| 宜兰市| 繁峙县| 闽清县| 遂宁市| 融水| 静宁县| 台北市| 黑龙江省| 兴山县| 洪江市|