posts - 28, comments - 27, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          相冊

          搜索

          •  

          積分與排名

          • 積分 - 28271
          • 排名 - 1438

          最新評論

          acegi學習筆記——1

          Posted on 2006-09-18 15:04 小小涼粉 閱讀(281) 評論(0)  編輯  收藏 所屬分類: JavaEE

          在驗證用戶登錄的時候,各個類調用的順序如下所示:

          authenticationProcessionFilter(AuthenticationProcessingFilter)---->

          authenticationManager(ProviderManger)---->

          daoAuthenticationProvider(DaoAuthenticationProvider)---->

          userDetailsService(UserDetailsService)

          在最底層的UserDetailsService接口中,提供了loadUserByUsername這個方法,我們只需要實現這個接口,并實現接口中的方法,就可以使用自己的驗證功能了。該方法傳入的參數是String username,返回類型是UserDetails,很顯然,我們需要通過自己的dao,根據username來得到自定義的user類型,然后把它封裝到UserDetails里面去,然后返回。

          另外,在UserDetail這個類里面,有一個GrantedAuthority[] 類型的屬性,用來存放該用戶所對應的權限,我們在loadUserByUsername這個方法里面,同樣也需要得到該用戶的權限,并把它賦給返回的UserDetails。

          假如用戶對應的類名為UserInfo,權限對應的類名為Roles,在UserInfo中有一個變量

          private Set roles;

          在得到權限信息的時候,因為它是集合,所以可以使用延遲加載功能,讀取的時候先從緩存中取數據,如果取不到的話,就調用UserInfo.getRoles()方法,這個時候就會到數據庫中取數據了,取到以后,再把數據放到緩存中。

          主站蜘蛛池模板: 诸暨市| 房山区| 错那县| 淮安市| 大洼县| 镇坪县| 文安县| 桂东县| 视频| 克拉玛依市| 高陵县| 敖汉旗| 阿尔山市| 龙州县| 淮滨县| 汝南县| 绩溪县| 满洲里市| 焉耆| 涞水县| 余庆县| 凤阳县| 涞源县| 南澳县| 河东区| 崇阳县| 长岭县| 安宁市| 衢州市| 贵州省| 乌拉特中旗| 凤山市| 中江县| 望江县| 綦江县| 松桃| 松阳县| 驻马店市| 岐山县| 大港区| 东辽县|