2011-10-27 95 views
20

我想允許一個特定的方法訪問多個用戶組。 Spring Security 3.x有可能使用@Secured註解來做這樣的事情嗎?考慮兩個組(作用)OPERATOR和USER,該代碼是否有效: Spring Security中的@Secured註釋中允許多個角色

 
    @Secured("ROLE_OPERATOR", "ROLE_USER") 
    public void doWork() { 
     // do useful processing 
    } 

回答

34

你快到了。在語法上,你需要把它寫這樣的:

@Secured({"ROLE_OPERATOR", "ROLE_USER"}) 
public void doWork() { ... } 

這是因爲你的註釋中單個陣列的屬性提供多個值。 (Java語法特殊情況下交付單個值,但現在您需要「正確地」執行此操作。)

+0

...,具體而言,這是一個(含)'或',對?如果您是ROLE_OPERATOR,或ROLE_USER或兩者,您將被授權。這不是'AND'。 – SusanW

13

@Donal Fellows答案對於Spring應用程序是正確的。但是,如果你在工作的Grails,你需要使用Groovy的語法列表,使代碼看起來像這樣

@Secured(["ROLE_OPERATOR", "ROLE_USER"]) 
public void doWork() { ... } 
相關問題