2011-12-16 2 views
1

Je crée une application en utilisant seam 3 et cdi. J'ai commencé avec un exemple, pour la partie sécurité comme ceci:couture 3 sécurité et rôles

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

Cela fonctionne. Si mon utilisateur a le rôle d'administrateur, il a accès. Mais comment puis-je implémenter une situation où l'utilisateur peut avoir une règle ou l'autre? Par exemple: si mon utilisateur est @Admin ou @Student, il peut y accéder, mais s'il est @Teacher, il ne peut pas y accéder.

Merci.

Kelly

Répondre

0

Je pense que vous devez create your own authorizer method qui fait les contrôles de rôle spécifiques dont vous avez besoin:

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