Шов 3 безопасности и роли - PullRequest
1 голос
/ 16 декабря 2011

Я создаю приложение, используя seam 3 и cdi.Я начал с примера, для части безопасности, как это:

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

Это работает.Если у моего пользователя есть роль администратора, то у него есть доступ.Но как я могу реализовать ситуацию, когда у пользователя может быть одно правило или другое?Например: если мой пользователь @Admin или @Student, он может получить к нему доступ, но если он является @Teacher, он не может.

1 Ответ

0 голосов
/ 18 декабря 2011

Я думаю, вам нужно создать собственный метод авторизации , который выполняет необходимые проверки роли:

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.
  }
}
...