| | |
| | | - Löschen von Rollen |
| | | - Rollen erteilen |
| | | - Rollen entziehen |
| | | - Eigenes Kennwort ändern |
| | | |
| | | Die Bedienoberfläche passt sich an verschiedene Geräteausstattungen an (responsiv). Sie fügt sich neben den o.a. Funktionen in den Rahmen für Verwaltungsfunktionen einer WebBox ein, kann aber ebensogut als einzelne Webanwendung auf Tomcat für die Nutzerverwaltung sorgen. |
| | | |
| | | Weitere Informationen zur Nutzerverwaltung finden sich auf der [Produktseite] (/data/ulrich/prg//Nutzerverwaltung) |
| | | Die responsive Bedienoberfläche passt sich an verschiedene Geräteausstattungen an. Weitere Informationen auf der [Produktseite](https://uhilger.de/data/pg/Nutzerverwaltung/). |
| | | |
| | | ## Webanwendung herstellen |
| | | |
| | |
| | | - [Apache Tomcat](http://tomcat.apache.org) |
| | | - [XStream](https://github.com/codehaus/xstream) |
| | | - [Jettison](https://github.com/codehaus/jettison) |
| | | - [BaseLink](https://uhilger.de/gitblit/summary/BaseLink.git) |
| | | - [Transit](https://uhilger.de/gitblit/summary/Transit.git) |
| | | - [BaseLink](https://uhilger.de/gitblit/docs/BaseLink.git) |
| | | - [Transit](https://uhilger.de/gitblit/docs/Transit.git) |
| | | |
| | | Nach Beschaffung des JDK und der oben angegebenen Klassenbibliotheken wird der Quellcode aus diesem Git-Repository an einen frei wählbaren lokalen Ablageort [heruntergeladen](http://uhilger.de/gitblit/zip/?r=um.git&h=master&format=zip) und entpackt. In der hier folgenden weiteren Beschreibung wird das so entstandene Verzeichnis `um-master` einschließlich des absoluten Pfades dorthin `$UM` genannt. Ferner wird angenommen, dass die oben aufgeführten Klassenbibliotheken lokal an Orten abgelegt sind, deren Pfade mit den Platzhaltern `$JLIB` und `$CATALINA_HOME` gemeint sind. Anstelle der Platzhalter in den folgenden Kommandos muss also der absolute Pfad des lokalen Ablageortes eingesetzt werden. |
| | | |
| | |
| | | |
| | | ## Abhängigkeiten |
| | | |
| | | Die Nutzerverwaltung erfordert die folgenden Bestandteile auf der Instanz von Tomcat, auf der sie ausgeführt werden soll: |
| | | Die Nutzerverwaltung erfordert zur Verarbeitung von HTML-Vorlagen Mustache auf der Instanz von Tomcat, auf der sie ausgeführt werden soll. Zudem wird der Font Roboto Condensed verwendet, der von Google Fonts erhältlich ist. Beide Teile werden im ROOT-Kontext von Tomcat wie folgt hinterlegt: |
| | | |
| | | ``` |
| | | $CATALINA_BASE/webapps/jslib/bootstrap (>=4.0 alpha 6) |
| | | $CATALINA_BASE/webapps/jslib/jquery (>=1.11.1) |
| | | $CATALINA_BASE/webapps/jslib/mustache (>=2.3.0) |
| | | $CATALINA_BASE/webapps/ROOT/jslib/mustache (>=2.3.0) |
| | | $CATALINA_BASE/webapps/ROOT/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf |
| | | ``` |
| | | |
| | | `$CATALINA_BASE` meint das in der der Datei [RUNNING.txt](http://tomcat.apache.org/tomcat-8.5-doc/RUNNING.txt) der Tomcat-Dokumentation so bezeichnete Verzeichnis. Nachfolgend die Quellen, von denen die obigen Abhängigkeiten bezogen werden können: |
| | | `$CATALINA_BASE` im obigen Beispiel meint das in der der Datei [RUNNING.txt](http://tomcat.apache.org/tomcat-8.5-doc/RUNNING.txt) der Tomcat-Dokumentation so bezeichnete Verzeichnis. Nachfolgend die Quellen, von denen Mustache und der Font bezogen werden können: |
| | | |
| | | - [Bootstrap](http://getbootstrap.com) |
| | | - [jQuery](http://jquery.com) |
| | | - [Mustache](https://github.com/janl/mustache.js) |
| | | - [Roboto Condensed](https://fonts.google.com/specimen/Roboto+Condensed) |
| | | |
| | | ### Datenbank |
| | | |
| | |
| | | |
| | | Die Nutzerverwaltung wird per Deploy auf Tomcat installiert und kann anschließend von Benutzern mit der Rolle `nutzerAdmin` ausgeführt werden. Beim ersten Start wird die Benutzerdatenbank erstellt und darin ein Benutzer `admin`, Kennwort `admin`, mit dem neue Benutzer und Rollen angelegt werden können. |
| | | |
| | | Damit Tomcat die von der Nutzerverwaltung verwaltete Nutzerdatenbank verwendet, müssen in der Datei `$CATALINA_BASE/conf/server.xml` folgende Änderungen gemacht werden, die weiter unten beispielhaft im Detail beschrieben sind. Wichtig ist, die richtige Reihenfolge einzuhalten. |
| | | Damit Tomcat die von der Nutzerverwaltung verwaltete Nutzerdatenbank verwendet, müssen in der Datei `$CATALINA_BASE/conf/server.xml` Änderungen gemacht werden, die weiter unten beispielhaft beschrieben sind. Wichtig ist, für die Umstellung auf eine Nutzerdatenbank die folgende Reihenfolge einzuhalten. |
| | | |
| | | 1. Datenbankserver starten |
| | | 1. Tomcat mit alten Benutzereinstellungen starten |
| | | 1. Die Nutzerverwaltung auf Tomcat installieren (Deploy) |
| | | 1. DataSource hinzufügen |
| | | 1. Realm umstellen |
| | | 1. DataSource hinzufügen (s.u.) |
| | | 1. Realm umstellen (s.u.) |
| | | |
| | | Danach muss Tomcat neu gestartet werden. |
| | | |
| | |
| | | |
| | | Die Nutzerverwaltung legt Kennworte verschlüsselt in der Datenbank ab. Laut Dokumentation von Tomcat wird dafür die Klasse `RealmBase` verwendet. Damit innerhalb der Nutzerverwaltung auch andere Mechanismen verwendet werden können, wird die Schnittstelle `de.uhilger.um.Digester` verwendet. Die Klasse `de.uhilger.um.TomcatDigester` implementiert diese und setzte dort bislang die zuvor erwähnte Klasse `RealmBase` von Tomcat ein. |
| | | |
| | | Mit Tomcat 9 wurde die Methode [Digest()](http://tomcat.apache.org/tomcat-9.0-doc/realm-howto.html#Digested_Passwords) der Klasse RealmBase ohne Angabe von Gründen entfernt, obwohl diese Methode von der [Tomcat-Dokumentation](https://tomcat.apache.org/tomcat-9.0-doc/realm-howto.html#Digested_Passwords) auch in Verison 9 und 10 von Tomcat als diejenige zur dynamischen Erzeugung von verschlüsslten Kennworten beschrieben wird. In der Klasse `TomcatDigester` ist daher auf die Verwendung der Klasse `MessageDigestCredentialHandler` umgestellt worden. |
| | | Mit Tomcat 9 wurde die Methode [Digest()](https://tomcat.apache.org/tomcat-8.5-doc/api/org/apache/catalina/realm/RealmBase.html#Digest\(java.lang.String,%20java.lang.String,%20java.lang.String\)) der Klasse RealmBase ohne Angabe von Gründen entfernt, obwohl diese Methode von der [Tomcat-Dokumentation](https://tomcat.apache.org/tomcat-9.0-doc/realm-howto.html#Digested_Passwords) auch in Verison 9 und 10 von Tomcat als diejenige zur dynamischen Erzeugung von verschlüsslten Kennworten beschrieben wird. In der Klasse `TomcatDigester` ist daher auf die Verwendung der Klasse `MessageDigestCredentialHandler` umgestellt worden. |
| | | |
| | | Im Deployment Descriptor `$UM/web/WEB-INF/web.xml` ist der Context Parameter `digester` hinterlegt und standardmäßig auf `de.uhilger.um.TomcatDigester` eingestellt. Soll eine andere Form der Verschlüsselung genutzt werden, kann dies mit einer eigenen Implementierung der Schnittstelle `de.uhilger.um.Digester` erreicht und entsprechend im Deployment Descriptor umkonfiguriert werden. |