2011-12-16 4 views
1

Я создаю приложение, используя шов 3 и cdi. Я начал с примера, для этой части безопасности:шов 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. 
    } 
} 
Смежные вопросы