From fddd4034ba468ada2242eb7df427b2fe166e8f74 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Tue, 31 Jan 2017 21:47:15 +0000
Subject: [PATCH] Kleine Änderung an der Doku

---
 readme.md |   72 ++++++++++++++++++++++++++++++-----
 1 files changed, 61 insertions(+), 11 deletions(-)

diff --git a/readme.md b/readme.md
index b6c20f1..5d2447f 100644
--- a/readme.md
+++ b/readme.md
@@ -2,6 +2,21 @@
 
 Eine Webanwendung zur Verwaltung von Benutzern eines Tomcat Web- und Applikationsservers in einer Derby-Datenbank.
 
+## Funktionen
+
+Die Nutzerverwaltung stellt die folgenden Funktionen bereit
+
+- Anlegen neuer Benutzer
+- Löschen von Benutzern
+- Anlegen neuer Rollen
+- Löschen von Rollen
+- Rollen erteilen
+- Rollen entziehen
+
+Die Bedienoberfläche passt sich an verschiedene Geräteausstattungen an (responsiv) und fügt sich neben den o.a. Funktionen in den Rahmen für Verwaltungsfunktionen einer WebBox ein.
+
+Weitere Informationen zur Nutzerverwaltung finden sich auf der [Produktseite] (http://uhilger.de/dev/Software/Nutzerverwaltung/Nutzerverwaltung) 
+
 ## Webanwendung herstellen
 
 Zum Herstellen der Webanwendung wird ein Java Development Kit (JDK) benötigt, wie es z.B. von [Azul](http://azul.com) oder dem [OpenJDK-Projekt](http://openjdk.java.net/) erhältlich ist. In der hier folgenden weiteren Beschreibung wird der lokale Ablageort des Java Development Kits `$JDK` genannt. Desweiteren werden die folgenden Klassenbibliotheken benötigt
@@ -64,18 +79,53 @@
 - [jQuery](http://jquery.com)
 - [Mustache](https://github.com/janl/mustache.js)
 
-## Funktionen
+### Datenbank
 
-Die Nutzerverwaltung stellt die folgenden Funktionen bereit
+Zur Verwaltung von Benutzern in einer Datenbank muss ein [Derby-Datenbankserver](http://db.apache.org/derby) im Zugriff der Nutzerverwaltung sein. Im Auslieferungszustand der Nutzerverwaltung ist dies in der Datei `$UM/web/META-INF/context.xml` als Uniform Resource Locator (URL) `jdbc:derby://127.0.0.1:1528` konfiguriert. Damit wird auf einen Derby-Server auf Port 1528 der lokalen Maschine verwiesen. Dieser Eintrag muss geändert werden, wenn sich der Datenbankserver an einem anderen Ort befindet.
 
-- Anlegen neuer Benutzer
-- Löschen von Benutzern
-- Anlegen neuer Rollen
-- Löschen von Rollen
-- Rollen erteilen
-- Rollen entziehen
+Für den Zugriff auf den Datenbankserver muss sich der Datenbanktreiber `derbyclient.jar` aus der Distribution von Derby im Verzeichnis `$CATALINA_BASE/lib` befinden.
 
-Die Bedienoberfläche passt sich an verschiedene Geräteausstattungen an (responsiv) und fügt sich neben den o.a. Funktionen in den Rahmen für Verwaltungsfunktionen einer WebBox ein.
+## Nutzerverwaltung auf Tomcat einschalten
 
-Weitere Informationen zur Nutzerverwaltung finden sich auf der [Produktseite] (http://uhilger.de/dev/Software/Nutzerverwaltung/Nutzerverwaltung) 
-...dort noch nicht auf dem neuesten Stand...
+Die Nutzerverwaltung wird per Deploy auf Tomcat installiert und kann anschließend von Benutzern mit der Rolle `nutzerAdmin` ausgeführt werden. Damit Tomcat die von der Nutzerverwaltung verwaltete Nutzerdatenbank verwendet, muss in der Datei `$CATALINA_BASE/conf/server.xml` folgende Änderung gemacht und Tomcat neu gestartet werden.
+
+
+vorher
+
+```
+    <Engine name="Catalina" defaultHost="localhost">
+
+      <Realm className="org.apache.catalina.realm.LockOutRealm">
+        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+               resourceName="UserDatabase"/>
+      </Realm>
+
+      <!-- weitere Einträge ... -->
+```
+
+
+nachher
+
+```
+    <Engine name="Catalina" defaultHost="localhost">
+
+      <Realm className="org.apache.catalina.realm.LockOutRealm">
+        <Realm className="org.apache.catalina.realm.JDBCRealm"
+          driverName="org.apache.derby.jdbc.ClientDriver"
+          connectionURL="jdbc:derby://localhost:1528/udb;user=dbadmin;password=changeit"
+          userTable="app.users" userNameCol="user_name" userCredCol="user_pass"
+          userRoleTable="app.user_roles" roleNameCol="role_name" >
+            <CredentialHandler className="org.apache.catalina.realm.MessageDigestCredentialHandler" algorithm="sha-256" />
+        </Realm>
+      </Realm>
+
+      <!-- weitere Einträge ... -->
+``` 
+
+**Bitte beachten**: Ab Version 8.5 von Tomcat wurde die Verschlüsselung auf SHA-256 umgestellt. Dies muss dem JDBCRealm mit dem oben aufgeführten CredentialHandler vermittelt werden.
+
+## Verschlüsselung von Kennworten
+
+Die Nutzerverwaltung legt Kennworte verschlüsselt in der Datenbank ab. Standardmäßig wird dafür die Klasse `RealmBase` von Tomcat 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 setzt dort die zuvor erwähnte Klasse `RealmBase` von Tomcat ein.  
+
+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.
\ No newline at end of file

--
Gitblit v1.9.3