Vous pouvez sécuriser votre application d'entreprise EJB à l'aide d'annotations ou de descripteurs de déploiement.
Avant Java™ EE 5, si vous vouliez utiliser l'autorisation pour une application donnée, vous deviez spécifier des informations d'autorisation dans
les descripteurs de déploiement de l'application ejb-jar.xml ou web.xml. Vous pouvez configurer la sécurité de votre application directement à l'aide d'annotations.
Annotations de sécurité communes
La spécification JSR 250 définit un certain nombre d'annotations de sécurité communes. Cinq annotations de sécurité sont définies :
- javax.annotation.security.PermitAll :
- Peut être utilisée au niveau type ou méthode.
- Indique que la méthode donnée ou toutes les méthodes métier de l'EJB donné sont accessibles par tout le monde.
- javax.annotation.security.DenyAll :
- Peut être utilisée au niveau méthode.
- Indique que la méthode donnée de l'EJB n'est accessible par personne.
- javax.annotation.security.RolesAllowed :
- Peut être utilisée au niveau type ou méthode.
- Indique que la méthode donnée ou toutes les méthodes métier de l'EJB sont accessibles par les utilisateurs associés à la liste de rôles.
- javax.annotation.security.DeclareRoles :
- Peut être utilisée au niveau type.
- Définit des rôles pour le contrôle de la sécurité. A utiliser par EJBContext.isCallerInRole,
HttpServletRequest.isUserInRole et WebServiceContext.isUserInRole.
- javax.annotation.security.RunAs :
- Peut être utilisée au niveau type.
- Spécifie le rôle d'identité d'exécution (run-as) pour les composants donnés.
Exemple :
@Stateless
@RolesAllowed("team")
public class TestEJB implements Test {
@PermitAll
public String hello(String msg) {
return "Hello, " + msg;
}
public String goodbye(String msg) {
return "Goodbye, " + msg;
}
}
Dans cet exemple, la méthode hello() est accessible par tout le monde, et la méthode goodbye() est accessible par les utilisateurs du rôle "team".