© DrHitch/Shutterstock.com
Java EE Security

2 Java EE 6 Security - Easy meets comfy


Wirft man einen Blick auf den Quellcode industrieller Java-Enterprise-Applikationen, so findet man darin nicht selten eigens entwickelte Sicherheitsframeworks vor. Nachdem wir uns im ersten Kapitel dieses shortcuts zum Thema Java & Security mit der Java Standard Edition 7 (Java SE 7) beschäftigten, rückt nun die Java Enterprise Edition 6 (Java EE 6) in das Zentrum unserer Betrachtungen. Das folgende Kapitel gibt einen Überblick über die von der Java-EE-6-Plattform bereitgestellten Sicherheitskonzepte und -funktionalitäten und beschreibt anschließend, wie sich damit Webapplikationen und Enterprise JavaBeans absichern lassen. Wir werden dabei sehen, dass das wirklich recht einfach und komfortabel vonstatten geht. In Anlehnung an [1] betrachtet dieses Kapitel die theoretischen Grundlagen. Im nächsten Kapitel folgt zwecks Vertiefung ein Gesamtbeispiel, durch das sich hoffentlich alle noch offenen Fragen klären werden.

2.1 Einführung in Java EE 6 Security

Java-Enterprise-Applikationen setzen sich üblicherweise aus unterschiedlichen Komponenten zusammen, die innerhalb verschiedener Container ausgeführt werden (Abb. 1). Derartige Container repräsentieren die Laufzeitumgebung für die Komponenten und stellen diesen die grundlegenden Dienste bereit. Dazu zählen auch die sicherheitsbezogenen Funktionalitäten. Die Hauptaufgaben der Container in Sachen Sicherheit bestehen darin, die Benutzer zu authentifizieren und nur autorisierten Benutzern den Zugriff auf die Applikationsfunktionen und deren Daten zu erlauben. Zur komfortablen Gewährleistung dieser Punkte unterstützen die Container zwei unterschiedliche Paradigmen, derer sich der Entwickler bei der Programmierung bedienen kann: einerseits die deklarative Sicherheit und andererseits die programmatische Sicherheit.

loewenstein_security2_1.png

Abbildung 1: Der Java-EE-Server baut auf verschiedenen Containern auf [2]

Bei der deklarativen Sicherheit definiert der Programmierer die sicherheitsrelevanten Anforderungen mittels Annotationen direkt in der zugehörigen Klasse. Allerdings lassen sich auf diese Weise nicht alle Informationen festlegen. Die klassenübergreifenden Definitionen muss er im zugehörigen Deployment Descriptor notieren. Bei Webkomponenten kommen diese in die Datei WEB-INF/web.xml, bei Enterprise JavaBeans (EJBs) werden diese in der Datei META-INF/ejb-jar.xml notiert. Manchmal reicht die deklarative Sicherheit aber nicht aus. Will der Programmierer beispielsweise innerhalb einer Methode eine Entscheidung abhängig von der Rolle des ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang