2013-10-06 46 views
2

docs,我讀了它是可能的定義屬性級別權限(以及資源​​和實例級別)如何屬性級別權限的Apache四郎被定義

屬性等級 - 的許可現在指定一個實例或資源的屬性。用戶可以編輯IBM客戶記錄上的地址。

這些權限如何使用<resource>:<action>:<instance>格式來聲明性定義,其中Shiro中的權限通常被定義?如果有可能執行類似<resource>:<action>:<instance>:<attributename>的操作似乎是合乎邏輯的,但我無法在任何討論此問題的文檔中找到文檔。

回答

0

您是否檢查http://shiro.apache.org/permissions.html

您可以從您自己的信息中自行創建字符串。在我們的代碼中,我們使用自定義域來以編程方式添加權限,如下所示:

public class OurAuthorizingReam extends AuthorizingRealm { 
    ... 
@Override 
public AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { 
    ... code to find permission infp 

    SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); 
    while (.. looping through permission info){ 
      info.addStringPermission(... the permission string constructed); 
    } 
    return info; 
} 
+1

我確實讀過提供的頁面多次,但屬性權限沒有任何提示。你能否點亮你的自定義代碼?你是否必須編寫自己的代碼來將字符串權限鏈接到資源的哪些屬性可以被讀取/寫入,或Shiro是否提供了一些可以利用的某種中間件? –

+1

shiro做的唯一的事情就是給你提供用戶是否具有某種權限(Subject.isPermitted())以及將這些權限添加到用戶的方式。我們已經編寫了我們的自定義代碼。所以我們從我們自己的邏輯中構建權限字符串來進行屬性檢查。 – Wouter