JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java Application Framework » Spring  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
己加入精華區
by caterpillar at 2007-04-03 12:54
本主題所含的標籤
無標籤
作者 Acegi的AccessDecisionManager問題 [精華]
liny





發文: 205
積分: 0
於 2007-03-28 23:41 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
大家好:
我知道org.acegisecurity.vote.AffirmativeBased是說只要有一個voter投票說ok就允許存取你設定的source,
org.acegisecurity.vote.UnanimousBased則是說要嘛全部的voter都說ok,或者都棄權,
那org.acegisecurity.vote.ConsensusBased的解釋是???
還有什麼叫做棄權?是說如果voter看使用者所屬的role沒有在某個source所指定的role,就放棄?
例如有個使用者叫做x,x所屬的角色是ROLE_ADMIN,
而source定義如下:
1
2
3
4
5
6
7
<property name="objectDefinitionSource">
      <value>
          PATTERN_TYPE_APACHE_ANT
          /index.jsp=ROLE_SYSOP
          /index.html=ROLE_ADMIN
      </value>
</property>


當使用者用ROLE_ADMIN的帳號密碼登入之後,
index.jsp因為只有ROLE_SYSOP這個角色可以存取,
所以voter在投票說index.jsp是否x這個使用者可以存取的時候是"棄權"呢?
還是說voter無法對所有的resource作角色判斷的時候,才叫做"棄權"?

謝謝大家的指教!


reply to postreply to post
[當一個人要離開的時候,總會有理由的]
作者 Re:Acegi的AccessDecisionManager問題 [Re:liny]
scw1109





發文: 7
積分: 1
於 2007-03-29 13:34 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
AccessDecisionManager 方面
org.acegisecurity.vote.ConsensusBased 就是看票數多那一邊
例如: 3 票 ok, 2 票 reject 就可以 access
當中有設定可以決定相同票數時是否通過

Voter 方面 有個觀念要厘清的是 Voter 不一定是 RoleVoter
而任何 Voter 都可以投 ACCESS_GRANTED, ACCESS_ABSTAIN, ACCESS_DENIED 其中的一種 所以什麼時候棄權是看 Voter 的 implementation

再來看 RoleVoter 的部份
RoleVoter 可以設定 prefix
預設是 "ROLE_"
也就是說 RoleVoter 在看到 ROLE_ 開頭的設定才會去進行比對
如果限制條件中沒有任何 ROLE_ 開頭的 RoleVoter 就會棄權
不過 RoleVoter 一旦進行比對就不會投棄權票了
所以 比到有這個角色就投贊成 不然就會是反對了

以你的例子 因為兩個條件都是 ROLE_ 開頭的
所以 RoleVoter 一定不會棄權


reply to postreply to post
作者 Re:Acegi的AccessDecisionManager問題 [Re:liny]
liny





發文: 205
積分: 0
於 2007-03-30 14:38 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
總算觀念有進一步的釐清了
謝謝你~


reply to postreply to post
[當一個人要離開的時候,總會有理由的]
» JWorld@TW »  Java Application Framework » Spring

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8