EJB - Segurança
A segurança é uma grande preocupação de qualquer aplicativo de nível empresarial. Inclui a identificação do (s) usuário (s) ou sistema que acessa o aplicativo. Com base na identificação, permite ou nega o acesso aos recursos do aplicativo. Um contêiner EJB gerencia questões de segurança padrão ou pode ser personalizado para lidar com questões de segurança específicas.
Termos de segurança importantes
Authentication - Este é o processo que garante a autenticidade do usuário que acessa o sistema ou aplicativo.
Authorization - Este é o processo que garante que o usuário autêntico tenha o nível correto de autoridade para acessar os recursos do sistema.
User - O usuário representa o cliente ou sistema que acessa o aplicativo.
User Groups - Os usuários podem fazer parte do grupo com certas autoridades, por exemplo, o grupo do administrador.
User Roles - As funções definem o nível de autoridade que um usuário possui ou permissões para acessar um recurso do sistema.
Segurança gerenciada por contêiner
O EJB 3.0 especificou os seguintes atributos / anotações de segurança, que os contêineres EJB implementam.
DeclareRoles- Indica que a classe aceitará as funções declaradas. As anotações são aplicadas no nível da classe.
RolesAllowed- Indica que um método pode ser acessado pelo usuário da função especificada. Pode ser aplicado no nível da classe, resultando em que todos os métodos da classe podem ser acessados pelo usuário da função especificada.
PermitAll- Indica que um método de negócios está acessível a todos. Pode ser aplicado tanto em sala de aula como em nível de método.
DenyAll - Indica que um método de negócios não está acessível a nenhum usuário especificado na classe ou no nível do método.
Exemplo
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
}
}
Configuração de Segurança
Mapeie funções e grupos de usuários no arquivo de configuração.
<?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>