| | |
| | | - [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. |
| | | Ferner erfordert die Nutzerverwaltung die folgenden Javascript-Bibliotheken und Schriftarten: |
| | | |
| | | ``` |
| | | $JSLIB/mustache (>=2.3.0) |
| | | $FONTS/Roboto_Condensed/RobotoCondensed-Regular.ttf |
| | | ``` |
| | | |
| | | Nachfolgend die Quellen, von denen Mustache und der Font bezogen werden können: |
| | | |
| | | - [Mustache](https://github.com/janl/mustache.js) |
| | | - [Roboto Condensed](https://fonts.google.com/specimen/Roboto+Condensed) |
| | | |
| | | 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 Bibliotheken und Schriftarten lokal an Orten abgelegt sind, deren Pfade mit den Platzhaltern `$JLIB`, `$JSLIB` und `$FONTS` gemeint sind. Anstelle der Platzhalter in den folgenden Kommandos muss also der absolute Pfad des lokalen Ablageortes eingesetzt werden. |
| | | |
| | | Zur Herstellung der Nutzerverwaltung werden die folgenden Kommandos ausgeführt (Beispiel für Linux): |
| | | |
| | |
| | | cp -r web/* build |
| | | cd build/WEB-INF |
| | | mkdir classes lib |
| | | cd ../.. |
| | | cd .. |
| | | mkdir fonts |
| | | mkdir jslib |
| | | cd .. |
| | | cp $JLIB/* build/WEB-INF/lib |
| | | cp -r $JSLIB/* build/jslib |
| | | cp -r $FONTS/* build/fonts |
| | | |
| | | $JDK/bin/javac -classpath $JLIB/jettison-1.3.3.jar:$JLIB/BaseLink.jar:$JLIB/Transit.jar:$JLIB/xstream-1.4.7.jar:$CATALINA_HOME/lib/servlet-api.jar -d ./build/WEB-INF/classes src/java/de/uhilger/um/*.java src/java/de/uhilger/um/api/*.java src/java/de/uhilger/um/web/*.java src/java/de/uhilger/um/daten/*.java |
| | | |
| | |
| | | ### Distributionsalternative |
| | | |
| | | Das Kommando `cp $JLIB/* build/WEB-INF/lib` kann auch weggelassen werden, dann sind die Klassenbibliotheken nicht Teil des Webarchivs der Nutzerverwaltung. In diesem Fall muss stattdessen der Inhalt von `$JLIB` nach `$CATALINA_BASE/lib` kopiert werden. |
| | | |
| | | ## Abhängigkeiten |
| | | |
| | | Die Nutzerverwaltung erfordert die Erweiterung zur Verarbeitung von HTML-Vorlagen Mustache auf der Instanz von Tomcat, auf der sie ausgeführt werden soll: |
| | | |
| | | ``` |
| | | $CATALINA_BASE/webapps/jslib/mustache (>=2.3.0) |
| | | ``` |
| | | |
| | | `$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 Quelle, von der Mustache bezogen werden kann: |
| | | |
| | | - [Mustache](https://github.com/janl/mustache.js) |
| | | |
| | | ### Datenbank |
| | | |
| | |
| | | |
| | | 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. |
| | | 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. |