2011-12-16 3 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. 
    } 
}