Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Java EE 7: Geschäftsanwendungen

Webseite absichern

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Sichern Sie die Webseite mit Hilfe einer Konfigurationsdatei ab. Zusätzlich legen Sie Anmelde- und Fehlerseiten an und unterdrücken in Abhängigkeit von der Rolle eines Benutzers bestimmte Operationen.

Transkript

Das Absichern einer Applikation gehört mit zu den wichtigsten und notwendigsten Schritten, wenn man eine Applikation bereitstellen möchte. Denn schließlich soll nicht jeder auf eine Applikation zugreifen können. Wir werden uns in diesem Video deshalb damit auseinandersetzen, wie wir auf einfache Art und Weise unsere Applikation so absichern können, dass nur im Server selbst hinterlegte Benutzer auf die Applikation zugreifen können. Und wer werden darüber hinaus dafür sorgen, dass bestimmte Bereiche oder Aspekte einer Applikation nur für bestimmte Benutzer zugänglich sind. Der erste Schritt, womit wir die Sicherheit unserer Applikation garantieren wollen, ist, dass wir uns einmal die Datei web.xml aus der Verzeichnis web.inf öffnen. und hier entweder über den Tree gehen, oder über die Source-Ansicht gehen, um dann die Authentifizierung zu hinterlegen. Authentifizierung findet statt mit Hilfe des security-constraint-Elementes und so ein securityconstraint-Element kann dann auf eine None zeigen. So eine web-resource-collection hat einen Namen, z.B. Webseite und sie hat eines, oder mehrere url-patterns, in diesem Fall schließen wir alles ein. Und wir können hier http-Methoden definieren, die gestattet sind, und das machen wir für POST GET, PUT und DELETE. Jedenfalls dann wenn wir es brauchen. Und sollte eigentlich ausreichend sein das Ganze nur für POST und GET zu machen. Und dann haben wir darüber hinaus einen sogenannten Auth-constraint. So ein Auth-constraint definiert die Rollen, die mit diesem arbeiten dürfen. Diese Rollen sind natürlich irgendwo definiert. Das werden wir auch gleich erledigen. Wir lassen hier auf diesen security-constraint die Rollen Administrator und User zugreifen. Wir können nun noch einen zweiten security-Constarint definieren. Da haben wir wieder eine None drin. Die heißt Sichere Seiten (nur Admin). Das ist nur ein Anzeigename für uns. Und hier definieren wir das url-pattern delete.xhtml und das url-pattern։ Send.xhtml. Diese beiden Seiten werden nämlich nur für Administratorn zugänglich sein und unterhalb der web-resource-collection fügen wir wieder ein auth-constraint ein und diesmal lassen wir hier nur die Rolle Administrator auf die sicheren Seiten, die nur für Admin gedacht sind, zugreifen. Jetzt haben wir also zwei security-constraints definiert und wir müssen nur noch definieren, wie Anmeldung an unserer Applikation stattfinden soll. Das machen wir mit Hilfe eines login-config-Elementes und hier geben wir an, dass wir formularbasierte Authentifizierung gestatten wollen. Formularbasierte Authentifizierung heißt letztlich nichts anderes als eine GSF-Seite zu verwenden und wir könne jetzt hier mit dem from-login-config-Element genauer sagen, was ist die Anmeldeseite, nämlich, login.xhtml. Diese Seite existiert noch nicht, deswegen wird er uns fehlerhaft angezeigt, und was ist die Fehlerseite, nämlich error.xhtml. Damit haben wir diese formularbasierte Authentifizierung als solches auch schon konfiguriert und zu guter Letzt müssen wir Mit Hilfe von security-role noch die Rollen explizit einmal deklarieren, mit denen wir arbeiten werden, und das sind die beiden Rollen: Administrator und das ist die zweite Rolle User. Damit haben wir nun grundsätzlich die Sicherheitskonfiguration unserer Webseite erledigt. Nun müssen wir ein paar Benutzer anlegen und wir müssen natürlich die entsprechenden Seiten anlegen. Widmen wir uns zunächst dem Anlegen zweier Benutzer. Mit Hilfe des add-user-Tools, was sich im wildfly bean-Verzeichnis verbookt, können wir nun ein Application-User anlegen, also ein Nutzer, der die Applikation benutzen soll. Den Usernamen nennen wir Test Admin. Das Kennwort können Sie beliebig festlegen, sollte es nicht sicher genug sein, werden Sie wie ich hier gefragt. Und jetzt geben wir an zu welchen Gruppen dieser Benutzer gehört. Der gehört der Gruppe Administrator an. Ja, das ist Korrekt, und wir speichern diesen Benutzer. Dasselbe wiederholen wir nun noch einmal für einen weiteren Application User. Den nennen wir Test User. Das Kennwort können Sie wieder beliebig festlegen. Und wiederholen. Und dieser Test User gehört zur Gruppe User. Es ist alles korrekt soweit und das ganze soll dann bitte gespeichert werden. Nun haben wir zwei Benutzer angelegt und können uns um Seiten Login.xhtml und error.xhtml kümmern. Bei diesen Seiten handelt es sich um ganz normale Seiten, die sich innerhalb von Webkontext befinden. D.h. wir legen xhtml- Pages an. Die erste Seite ist, wie gesagt login.xhtml. Sie verwendet das Blank Facelet Page-Templet und wir legen diese Seite an, und natürlich verwendet sie auch das Templet, das wir bereits definiert haben. Wir können nun einen Seitentitel angeben. Und können nun uns um den eigentlichen Seiteninhalt kümmern. Und in diesem Seiteninhalt, machen wir jetzt im Grunde gar nichts sonderlich Anspruchsvolles, wir werden lediglich ein Formular anlegen. Dieses Formular, was wir anlegen, ist ein normales Formular, kein GSF-Formular Wichtig ist, dass die Methode POST heißt, auch wenn es Ihnen hier als Fehler angezeigt wird und die Action ist sehr wichtig, sie muss J_secutiry_check lauten. Dann müssen wir über zwei Eingabefelder verfügen, nämlich ein Eingabefeld mit dem Namen J_username und ein zweites Eingabefeld mit dem Namen J_password. Das muss genau so geschrieben sein, damit das Ganze auch erkannt werden kann. Zu guter Letzt definieren wir noch einen Button mit dem wir dann die Anmeldung ausführen. Es ist an dieser Stelle nicht nötig eine Backing Bean oder ähnliches zu definieren, denn die ganze Logik wird vom Server abgebildet. Nun können wir auch die Fehlerseite definieren, die angezeigt werden soll, falls die Authentifizierung nicht erfolgreich war. Auch hier wir legen eine xhtml-Seite an und nennen sie error.xhtml Als Templet verwenden wir erneut Blank Facelet Page. Auch diese Seite verwendet unser Templet. Und auch hier überschreiben wir zunächst den Titel der Seite. Der Inhalt ist noch viel einfacher gehalten als beim Anmeldeformular. Wir geben hier lediglich einen statischen Text aus. Damit haben wir sowohl eine Anmelde, als auch eine Fehlerseite definiert und die Applikation bereits abgesichert. Das einzige, was wir noch machen müssen, ist zu verhindern, dass Leute aus Versehen auf Logiken zugreifen können, die ihnen gar nicht zustehen. Das betrifft speziell die Benutzer, und wir haben, dass der zum einen dadurch schon ausgeschlossen, dass wir in der Konfiguration entsprechende Information hinterlegt haben. Aber wir haben hier noch eine Seite, nämlich die Detail-Seite, in der sich die Buttons befinden, mit denen man Nachrichten- und Löschenoperationen auslösen kann. Und hier lassen wir diese Buttons nur anzeigen, wenn der Benutzer sich halt in der Rolle Administrator befindet. das regeln wir über das rendered-Attribut und machen hier eine Abfrage darauf, ob der Benutzer sich eben genau in dieser Rolle befindet. Und damit sind diese Buttons nur noch für die Administratoren zugänglich. Nun können wir unsere Applikationen einmal auf dem Server deployen. Nachdem wir versuchen auf unserer Applikation zuzugreifen, sehen wir nun die Anmeldeseite. Generell funktioniert sie, aber sieht noch nicht sonderlich schön aus. Der Hintergrund ist der, dass die Komponenten, die wir benutzen, über ein spezielles Surflet geladen werden, nämlich javax.faces.resource. Und dieses Surflet haben wir eben in unserer Sicherheitskonfiguration ausgeschlossen. Wir werden dieses Surflet nun der Konfiguration mit hinzufügen und damit sicherstellen, dass alle Resorcen tatsächlich geladen werden können. Wir erreichen dies in der web.xml, indem wir noch ein security-constraint anlegen, und dieser security-constraint zeigt nun auf javax.faces.resource, und wir haben hier kein auth-constraint drunter. und die Angabe von keinem auth-constraint sagt GFS, bzw. sagt dem Server, dass diese Resource ungesichert ist, auch wenn alles andere gesichert ist. Nachdem wir die Applikation neu auf dem Server deployed haben und die Seite erneut aufrufen, sehen wir nun auch, dass die Ausgabe vernünftig funktioniert. Nun können wir uns einmal anmelden mit dem testUser und dem Kennwort, was wir gewählt haben. Wir kommen natürlich in die Applikation hinein und wir sehen aber das hier im oberen Bereich nun mehr nur drei Buttons noch verfügbar sind, d.h. die Buttons für Nachrichten und für Löschen sind nicht mehr vorhanden. Wenn wir nun das ganze noch einmal ausführen und uns mit einem anderen Benutzer anmelden, dann werden wir sehen, dass diese Buttons wieder da sind. Ich melde mich nun also mit dem Administrator-Nutzer an und sehe nun in den Details die beiden Buttons. In diesem Video haben wir gesehen, wie wir unsere Applikation absichern können. Wir machen das mit Hilfe von security-constraints und Rollen, die wir im Server definieren. Wir können die Art der Anmeldung konfigurieren und müssen die Rollen, die wir wollen, bekannt geben. Darüber hinaus haben wir die beiden Seiten Login.xhtml für die Anmeldung und error.xhtml angelegt. Letzterer dient dem Anzeigen einer Fehlermeldung.

Java EE 7: Geschäftsanwendungen

Verfolgen Sie, wie eine komplette Business-Applikation unter dem Einsatz des gesamten Java-Enterprise-Techologiestacks ensteht.

5 Std. 2 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!