[英]Using Java config with Spring Security for annotation-based role checks and Basic HTTP Auth
[英]Using Annotation for Authorization Checks in Java
我的課堂上有一些類似以下的方法:
addOrder(long orderId){...}
updateOrder(long orderId, int qty){...}
deleteOrder(long orderId){...}
我想向他們添加授權行為。 例如:僅當您是Order的所有者時,才可以updateOrder。 僅當您是付費用戶時,才可以添加訂單。 僅當您的訂單狀態為“新”時,您才能刪除訂單。
做這個的最好方式是什么? 我們可以使用注釋嗎?
@checkAuthorization
addOrder(long orderId){...}
@checkAuthorization
updateOrder(long orderId, int qty){...}
@checkAuthorization
deleteOrder(long orderId){...}
checkAuthorization注釋的存在本身應該導致對自定義方法的調用,該方法將在我檢查是否允許此調用的地方實現。
如果沒有注釋,還有其他最佳實踐嗎?
如果重要的話,此代碼存在於Web應用程序(Struts-1)中。
可以使用面向方面的編程(AOP)來執行類似的檢查。 一個實際的實現是Spring Security 。 您還可以使用訪問控制列表(ACL)或自定義實現檢查對象權限 。 為此,您可以使用Spring Expression Language引用參數:
@PreAuthorize("#c.name == authentication.name")
public void doSomething(@P("c") Contact contact);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.