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>