EJB - Sicherheit
Sicherheit ist ein Hauptanliegen jeder Anwendung auf Unternehmensebene. Es umfasst die Identifizierung von Benutzern oder Systemen, die auf die Anwendung zugreifen. Basierend auf der Identifizierung ermöglicht oder verweigert es den Zugriff auf Ressourcen innerhalb der Anwendung. Ein EJB-Container verwaltet Standardsicherheitsbedenken oder kann an bestimmte Sicherheitsbedenken angepasst werden.
Wichtige Sicherheitsbedingungen
Authentication - Dies ist der Prozess, der sicherstellt, dass der Benutzer, der auf das System oder die Anwendung zugreift, als authentisch überprüft wird.
Authorization - Dies ist der Prozess, der sicherstellt, dass der authentische Benutzer über die richtige Berechtigung zum Zugriff auf Systemressourcen verfügt.
User - Der Benutzer repräsentiert den Client oder das System, das auf die Anwendung zugreift.
User Groups - Benutzer können Teil der Gruppe mit bestimmten Berechtigungen sein, z. B. die Administratorgruppe.
User Roles - Rollen definieren die Berechtigungsstufe, über die ein Benutzer verfügt oder über die Berechtigungen zum Zugriff auf eine Systemressource.
Container Managed Security
EJB 3.0 hat die folgenden Sicherheitsattribute / -anmerkungen angegeben, die von EJB-Containern implementiert werden.
DeclareRoles- Gibt an, dass die Klasse die deklarierten Rollen akzeptiert. Anmerkungen werden auf Klassenebene angewendet.
RolesAllowed- Gibt an, dass der Benutzer der angegebenen Rolle auf eine Methode zugreifen kann. Kann auf Klassenebene angewendet werden, wodurch auf alle Klassenmethoden zugegriffen werden kann, um Benutzer der angegebenen Rolle zu kaufen.
PermitAll- Zeigt an, dass eine Geschäftsmethode für alle zugänglich ist. Es kann sowohl auf Klassen- als auch auf Methodenebene angewendet werden.
DenyAll - Gibt an, dass auf eine Geschäftsmethode für keinen der auf Klassen- oder Methodenebene angegebenen Benutzer zugegriffen werden kann.
Beispiel
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
}
}
Sicherheitskonfiguration
Ordnen Sie Rollen und Benutzergruppen in der Konfigurationsdatei zu.
<?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>