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

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

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

    常言笑的家

    Spring, Hibernate, Struts, Ajax, RoR

    Acegi工作流程

    任何一個(gè)安全系統(tǒng)都包括authentication和authorization兩部分,Acegi相同。

    第一部分:authentication

    1、acegi通過AuthenticationProcessingFilter攔截login請(qǐng)求獲取Principal和Credential信息(通俗一點(diǎn)就是用戶名和密碼);

    2、驗(yàn)證用戶名密碼,由這個(gè)Filter調(diào)用認(rèn)證管理器AuthenticatiomManager進(jìn)行驗(yàn)證。

    AuthenticatiomManager本身并不具備驗(yàn)證的功能,它相當(dāng)與是一個(gè)驗(yàn)證控制器,由它來管理驗(yàn)證的過程及方式。AuthenticatiomManager是通過調(diào)用provider來進(jìn)行驗(yàn)證的,一個(gè)manager中可以具有多個(gè)provider,但只要有一個(gè)provider驗(yàn)證通過,manager就認(rèn)為驗(yàn)證成功。

    這部分要明白三點(diǎn):一,provider是可以配置進(jìn)去的,因?yàn)閍cegi是基于spring的;二是AuthenticatiomManager是可以被重寫的,你可以將manager改成你自己希望的控制器;三,好好利用event,這是標(biāo)準(zhǔn)的observer模式。acegi中的設(shè)計(jì)模式研究將在以后的貼子中討論。

    3、provider進(jìn)行驗(yàn)證。

    provider是真正的驗(yàn)證模塊,并且決定了驗(yàn)證的模式。provider目前acegi提供了dao、jaas,cas,x509,ldap等幾種驗(yàn)證方式,這些驗(yàn)證方式的具體內(nèi)容可以查閱acegi的文檔。provider驗(yàn)證通過后將Authentication對(duì)象返回。

    4、AuthenticationProcessingFilter將對(duì)象保存到ContextHolder中。Authentication部分結(jié)束。

    第二部分:authorization

    1、用戶提交請(qǐng)求,攔截器FilterSecurityInterceptor攔截請(qǐng)求,攔截器是一個(gè)Filter.

    2 、鑒權(quán),攔截器調(diào)用AccessDecisionManager進(jìn)行鑒權(quán)。

    AccessDecisionManager是通過投票的方式來決定是否有權(quán)限訪問資源。所謂投票就要包括投票的參與者和投票的策略。

    投票的參與者decisionVoters,這是AccessDecisionManager的一個(gè)屬性。decisionVoter能從某一個(gè)角度決定用戶是否能訪問資源,例如RoleVoter來判斷用戶的角色是否有權(quán)限訪問資源,MaxuserVoter來決定某個(gè)資源的訪問用戶數(shù)是否已經(jīng)達(dá)到了最大值等。

    投票策略。投票的策略是通過不同的AccessDecisionManager來實(shí)現(xiàn)的,例如acegi提供的AffirmativeBased對(duì)象,這個(gè)對(duì)象的策略就是只要有一個(gè)投票通過就全體通過。UnanimousBased對(duì)象的策略是必須全體投票通過才能通過。但在大多數(shù)情況下acegi提供的AccessDecisionManager不能滿足我們的要求,這就需要我們?nèi)?shí)現(xiàn)AccessDecisionManager接口,去定制適合自己項(xiàng)目的策略。

    3、投票。投票對(duì)象必須實(shí)現(xiàn)AccessDecisionVoter接口。投票對(duì)象關(guān)注的是某一方面的決定權(quán),如果投票通過則Vote方法來完成的。vote方法必須返回一個(gè)int型的數(shù)據(jù)代表投票結(jié)果,它們是AccessDecisionVoter的三個(gè)靜態(tài)成員屬性:ACCESS_ABSTAIN,,ACCESS_DENIED和ACCESS_GRANTED,它們分別是棄權(quán),否決和贊成。
     

    安全攔截器

      攔截器如何工作
      MethodInvocation攔截器
      FilterInvocation攔截器

    認(rèn)證

      認(rèn)證請(qǐng)求
      認(rèn)證管理器
      Authentication Provider

    授權(quán)

      Access Decision Manager
      Voting Decision Manager
      授權(quán)管理推薦

    ContextHolder的用戶接口

      用戶接口目標(biāo)
      HTTP會(huì)話認(rèn)證
      HTTP Basic認(rèn)證

    posted on 2006-12-16 22:48 常言笑 閱讀(270) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA/J2EE

    My Links

    Blog Stats

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲网红精品大秀在线观看 | 中文字幕在线日亚洲9| 成在人线AV无码免费| 久久精品亚洲精品国产色婷| 国产免费一区二区视频| 无人在线直播免费观看| 亚洲欧洲精品视频在线观看| 亚洲香蕉免费有线视频| 免费不卡中文字幕在线| 美女视频黄a视频全免费网站一区| 日韩免费观看一级毛片看看| 激情小说亚洲图片| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 亚洲免费精彩视频在线观看| 久久精品亚洲一区二区三区浴池 | 免费无码午夜福利片69| 亚洲午夜久久久久久噜噜噜| 久久久久久AV无码免费网站下载| 亚洲AV人人澡人人爽人人夜夜| 亚洲精品国产精品| 国产免费人视频在线观看免费| 成年免费a级毛片| 亚洲国产成人一区二区精品区| 精品一区二区三区免费毛片爱| 亚洲a级在线观看| 日产国产精品亚洲系列| 91成人免费福利网站在线| 四虎影视免费永久在线观看| 老司机午夜性生免费福利| 亚洲AV永久无码精品| 一本岛v免费不卡一二三区| 亚洲国产精品无码一线岛国| 中国在线观看免费国语版| 黄色a级免费网站| 久久精品国产亚洲| 日韩免费高清一级毛片在线| 免费看少妇高潮成人片| 亚洲欧美日韩自偷自拍| 在线亚洲人成电影网站色www| 2020久久精品国产免费| 亚洲最大成人网色|