EJB - Sicurezza
La sicurezza è una delle principali preoccupazioni di qualsiasi applicazione di livello aziendale. Include l'identificazione degli utenti o del sistema che accede all'applicazione. In base all'identificazione, consente o nega l'accesso alle risorse all'interno dell'applicazione. Un contenitore EJB gestisce i problemi di sicurezza standard o può essere personalizzato per gestire eventuali problemi di sicurezza specifici.
Termini di sicurezza importanti
Authentication - Questo è il processo che garantisce l'autenticità dell'utente che accede al sistema o all'applicazione.
Authorization - Questo è il processo che garantisce che l'utente autentico abbia il giusto livello di autorità per accedere alle risorse di sistema.
User - L'utente rappresenta il client o il sistema che accede all'applicazione.
User Groups - Gli utenti possono far parte del gruppo con determinate autorizzazioni, ad esempio il gruppo dell'amministratore.
User Roles - I ruoli definiscono il livello di autorità, un utente o le autorizzazioni per accedere a una risorsa di sistema.
Sicurezza gestita dal container
EJB 3.0 ha specificato i seguenti attributi / annotazioni di sicurezza, implementati dai contenitori EJB.
DeclareRoles- Indica che la classe accetterà i ruoli dichiarati. Le annotazioni vengono applicate a livello di classe.
RolesAllowed- Indica che è possibile accedere a un metodo dall'utente del ruolo specificato. Può essere applicato a livello di classe risultando in cui è possibile accedere a tutti i metodi della classe acquistando l'utente del ruolo specificato.
PermitAll- Indica che un metodo aziendale è accessibile a tutti. Può essere applicato sia a livello di classe che a livello di metodo.
DenyAll - Indica che un metodo aziendale non è accessibile a nessuno degli utenti specificati a livello di classe o di metodo.
Esempio
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
}
}
Configurazione della protezione
Mappare i ruoli e il gruppo di utenti nel file di configurazione.
<?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>