2011-12-16 172 views
1

我正在使用seam 3和cdi創建一個應用程序。我以一個例子開始,爲這樣的安全部分:seam 3安全和角色

public @ConversationScoped class UserAction { 
    public @Admin void deleteUser(String userId) { 
    // code 
    } 
} 

它的工作原理。如果我的用戶具有管理員角色,那麼他有權訪問。但是,我怎麼能實現一個用戶可能有一個規則或另一個規則的情況?例如:如果我的用戶是@Admin或@Student,他可以訪問它,但是如果他是@Teacher,他不能。

謝謝。

凱利

回答

0

我認爲你需要create your own authorizer method它執行特定的角色檢查你需要:

import org.jboss.seam.security.annotations.Secures; 

public class Restrictions {  
    public @Secures @Admin boolean isAdmin(Identity identity) { 
    return identity.hasRole("admin", "USERS", "GROUP"); 
    // Here, you would put in logic for "if my user is 
    //  @Admin or @Student he can access this, but 
    //  if he is a @Teacher he cannot" instead. 
    } 
}