Beispiel: Security-Basicsn
Beispiel für eine Session Bean, auf die per Application Client zugegriffen wird.
Für bestimmte Methoden existieren Sicherheitseinschränkungen.
Aufbau des Beispieles
a) Stateless Session Bean mit drei Methoden, die nur dazu dienen, mit unterschiedlichen
Zugriffsrechten versehen zu werden.
b) Application Client
Deploy der Stateless Session Bean
Schritt 1: Einstellungen siehe Screenshot. Die Bean enthält keine Home- oder Remote-Interfaces,
d.h. es wird nur die Beanklasse selbst gewählt.
Nachbearbeitung:
Auf der Registerkarte "Security" müssen zuerst einmal die von der Bean benötigten Rollen definiert werden.
Dazu auf den Button "Edit Roles..." in der Groupbox "Role Names referenced in code" klicken.
Jetzt kann man die aus dem Code heraus referenzierten Rollen definieren (werden in Bean benutzt,
um zu prüfen ob der User in einer bestimmten Rolle ist): Dazu in der Groupbox "Role Names referenced in code"
zwei neue Namen hinzufügen, in der zweiten Spalte kann man die bei "Edit Roles" angegebenen Rollen auswählen.
Im letzten Schritt wird festgelegt, welche Rollen welche Methoden aufrufen dürfen (siehe Screenshot).
Deploy des Application Clients
Schritt 1: Hinzufügen eines neuen Application Clients.
Schritt 2: Main Class wählen.
Nachbearbeitung:
Eine EJB-Referenz auf die Bean anlegen:
Konfigurieren der Security im Server
Die Benutzer für dieses Beispiel müssen auf dem Server konfiguriert werden.
Schritte:
1. Auf den Server verbinden: http://localhost:4848/asadmin
2. Im linken Baum wählt man "Security/Realms".
3. Auf "file" klicken, im rechten Fenster "Manage Users" wählen.
4. Folgende User hinzufügen:
a) "user1" mit Passwort "user1" und einer GroupList von "role1".
b) "user2" mit Passwort "user2" und einer GroupList von "role2".
b) "user3" mit Passwort "user3" und einer GroupList von "role1,role2".
b) "user4" mit Passwort "user4" und einer leeren GroupList.
Zuordnen der Rollen auf dem Server zu Rollen der Anwendung:
Das Mappen von Usern auf Rollen geschieht im Deployment-Tool in der Application-Ebene,
Registerkarte "General", dort "Sun-specific settings",
Combobox-Eintrag "User to Role Mappings". In der Listbox "Roles" sind die oben festgelegten
Rollen zu sehen. Wir klicken eine an und können dann in den beiden Listen "Users" / "Groups"
User oder ganze Gruppen in die einzelnen Rollen stecken.
Hier nur:
-"role1" des Servers kommt in "Role1" der Anwendung.
-"role2" des Servers kommt in "Role2" der Anwendung.
Hinweis: Der Button "Unrestricted" ist auch für den Standard-Admin aufrufbar.
Das Ergebnis der Anwendung sollte sein:
-"user1" darf auf die Buttons "Role1" und "Unrestricted" klicken.
-"user2" darf auf die Buttons "Role2" und "Unrestricted" klicken.
-"user3" darf auf alle drei Buttons klicken.
-"user4" darf auf nur auf "Unrestricted" klicken (obwohl er in keiner Rolle steckt).