Puede proteger su aplicación EJB mediante
anotaciones o descriptores de despliegue.
Antes de la aparición de Java™ EE 5, si
deseaba utilizar la autorización para una aplicación determinada, necesitaba
especificar información de autorización en los descriptores de despliegue de la
aplicación, ejb-jar.xml o web.xml. Puede configurar la seguridad en la aplicación
directamente mediante anotaciones.
Anotaciones de seguridad comunes
JSR 250 define varias anotaciones de seguridad comunes. Se definen cinco anotaciones
de seguridad:
- javax.annotation.security.PermitAll:
- Se puede utilizar a nivel de tipo o método.
- Indica que todo el mundo puede acceder al método especificado o a todos los
métodos de negocio del EJB especificado.
- javax.annotation.security.DenyAll:
- Se puede utilizar a nivel de método.
- Indica que nadie puede acceder al método especificado en el EJB.
- javax.annotation.security.RolesAllowed:
- Se puede utilizar a nivel de tipo o método.
- Indica que los usuarios asociados a la lista de roles pueden acceder al método
especificado o a todos los métodos de negocio del EJB.
- javax.annotation.security.DeclareRoles:
- Se puede utilizar a nivel de tipo.
- Define roles para la comprobación de seguridad. Puede ser utilizado por
EJBContext.isCallerInRole, HttpServletRequest.isUserInRole y
WebServiceContext.isUserInRole.
- javax.annotation.security.RunAs:
- Se puede utilizar a nivel de tipo.
- Especifica el rol run-as para los componentes especificados.
Ejemplo:
@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;
}
}
En este ejemplo, todo el mundo puede acceder al método hello() y
los usuarios del rol team pueden acceder al método goodbye().