2013-10-01 25 views
1

給出了Apache Shiro的權限格式domain:action:instance我如何定義一個用戶只能更改它的自己的帳戶數據?我如何配置用戶只能更改它自己的帳戶數據?

我可以做到以下幾點,但是這會導致權限的一個巨大的爆炸:

useraccountdata:write:user1許可證user1 ... useraccountdata:write:userN許可證userN

我需要的反而是許可規則的東西動態配置它。

是這樣的:useraccountdata:write:user{n}許可證自動user{n}所有n

這是支持在某種程度上還是我在這裏完全錯誤的道路上?如果不是,你會怎麼做?

回答

0

如果您創建自己的Authorizer版本,則可以使用isPermitted方法之一動態添加該用戶的權限。

+0

所以你有一些自定義代碼,以用戶爲基礎動態添加用戶的權限?我希望有一個陳述的方式,噢,我猜不可能。 –

+0

是的。但是您可以自己對類PermissionAnnotationHandler和AuthorizingAnnotationMethodInterceptor進行一些自定義。創建您自己的變體@RequiresPermission,它提供基本權限並從上下文(方法簽名或參數)中派生出其餘部分。這將涉及一些面向方面的編程 – Wouter

相關問題