EJB - Seguridad
La seguridad es una de las principales preocupaciones de cualquier aplicación de nivel empresarial. Incluye identificación de usuario (s) o sistema que accede a la aplicación. Con base en la identificación, permite o deniega el acceso a recursos dentro de la aplicación. Un contenedor EJB gestiona los problemas de seguridad estándar o se puede personalizar para manejar cualquier problema de seguridad específico.
Términos importantes de seguridad
Authentication - Este es el proceso que garantiza que el usuario que accede al sistema o la aplicación se verifica como auténtico.
Authorization - Este es el proceso que garantiza que el usuario auténtico tenga el nivel adecuado de autoridad para acceder a los recursos del sistema.
User - Usuario representa al cliente o sistema que accede a la aplicación.
User Groups - Los usuarios pueden ser parte del grupo que tiene ciertas autorizaciones, por ejemplo, el grupo de administradores.
User Roles - Los roles definen el nivel de autoridad que tiene un usuario o los permisos para acceder a un recurso del sistema.
Seguridad gestionada por contenedor
EJB 3.0 ha especificado los siguientes atributos / anotaciones de seguridad, que implementan los contenedores EJB.
DeclareRoles- Indica que la clase aceptará los roles declarados. Las anotaciones se aplican a nivel de clase.
RolesAllowed- Indica que el usuario del rol especificado puede acceder a un método. Se puede aplicar a nivel de clase, lo que da como resultado que se pueda acceder a todos los métodos de la clase comprar usuario del rol especificado.
PermitAll- Indica que un método comercial es accesible para todos. Se puede aplicar tanto a nivel de clase como de método.
DenyAll - Indica que un método comercial no es accesible para ninguno de los usuarios especificados a nivel de clase o método.
Ejemplo
package com.tutorialspoint.security.required;
import javax.ejb.*
@Stateless
@DeclareRoles({"student" "librarian"})
public class LibraryBean implements LibraryRemote {
@RolesAllowed({"librarian"})
public void delete(Book book) {
//delete book
}
@PermitAll
public void viewBook(Book book) {
//view book
}
@DenyAll
public void deleteAll() {
//delete all books
}
}
Configuración de seguridad
Asigne roles y grupos de usuarios en el archivo de configuración.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd">
<ejb-jar>
<security-role-mapping>
<role-name>student</role-name>
<group-name>student-group</group-name>
</security-role-mapping>
<security-role-mapping>
<role-name>librarian</role-name>
<group-name>librarian-group</group-name>
</security-role-mapping>
<enterprise-beans/>
</ejb-jar>