Dieser Artikel bündelt ergänzende Server-Konfigurationen, die je nach Umgebung benötigt werden. Jeder Abschnitt steht für sich – richte nur ein, was du tatsächlich nutzt:
- LDAP-Anmeldung anbinden – Anmeldung über einen LDAP-Server wie Active Directory.
- PDF-Verarbeitungsdienst einrichten – Word-Dokumente in PDFs umwandeln und Dokumente zu einem PDF zusammenfassen.
- SSL-Zertifikat in den Java-Truststore importieren – z. B. für LDAP über SSL.
- OAuth 2.0 Login – Microsoft-365-Mailkonten
- Tomcat 9 manuell unter Debian 12 installieren
LDAP-Anmeldung anbinden
Du kannst die Anmeldung an teamspace/projectfacts über einen LDAP-Server (z. B. Active Directory) abwickeln. Dazu ermittelst du die nötigen DNs, passt die web.xml an und setzt die Parameter.
LDAP über SSL: Verwendest du eine verschlüsselte LDAP-Verbindung, muss das LDAP-Zertifikat zuvor in den Java-Truststore importiert werden. Das beschreibt der Abschnitt SSL-Zertifikat in den Java-Truststore importieren weiter unten.
DNs und Hostnamen ermitteln
Verbinde dich auf den LDAP-Server und ermittle die Werte über die CMD:
- User Base DN:
dsquery user -name <verwendeter Benutzername> - Group Base DN:
dsquery group -name <Gruppenname> - LDAP-Hostname:
set L
web.xml anpassen
In der web.xml ist die LDAP-Anbindung auskommentiert. Kommentiere den Block ein und passe die markierten Bereiche an. Ist der Block nicht vorhanden, füge ihn ein.
Parameter-Erklärung für LDAP
| Bezeichnung | Beschreibung |
|---|---|
| app.authMethod | Kann auf „basic” gesetzt werden, wenn man „Basic Authentication” statt eines Formulars für den Login verwenden möchte. |
| app.authBackend | Für die LDAP-Anbindung muss hier „ldap” eingetragen werden. |
| app.defaultMandant | Die ID des Mandanten. |
| ldap.host | Vollständige URL zum LDAP-Server (z. B. ldap://127.0.0.1:389). |
| ldap.authMethod | „none”, „simple” oder eine sasl_mech-Liste (siehe Oracle-JNDI-Dokumentation). |
| ldap.allowOfflineLogin | Wie lange man sich nach dem letzten erfolgreichen LDAP-Login noch einloggen darf, wenn der LDAP nicht erreichbar ist (Wert in Stunden). |
| ldap.userBaseDN | Der DN, in dem nach Benutzern gesucht wird. |
| ldap.groupDN | DN der Gruppe, zu der ein Benutzer gehören muss, um sich einloggen zu dürfen. |
| ldap.principalPattern | Bestimmt, ob und wie der „rohe” Loginname zu einem Principal umformatiert wird (z. B. {0}@5p). |
| ldap.userUID | Attribut, das den Benutzer eindeutig identifiziert (der Loginname). Beim AD i. d. R. sAMAccountName. |
| ldap.userGUID | Attribut, das den Benutzer global eindeutig identifiziert und auch beim Umbenennen/Verschieben gleich bleibt. Beim AD die objectGUID. |
| ldap.userSearch | Suchfilter, um einen Benutzer zu finden. Platzhalter für den Benutzernamen ist {0}. |
| ldap.searchUserDN | Der DN eines Benutzers, der im LDAP nach Benutzern suchen darf. |
| ldap.searchUserPw | Passwort für den Such-Benutzer. |
LDAP-Benutzer zuweisen
Ordne im teamspace-Mandanten die LDAP-Benutzer den teamspace-Benutzern zu:
PDF-Verarbeitungsdienst einrichten
Der PDF-Verarbeitungsdienst (JOD-Server) ist ein Hilfsdienst, der Word-Dokumente in PDFs umwandelt und das Zusammenfassen verschiedener Dokumentenarten in ein PDF ermöglicht. Du kannst ihn auf demselben Server betreiben, auf dem projectfacts/teamspace läuft.
Für die PDF-Funktion benötigst du die Datei
jod-server.jar. Wir stellen sie dir auf Anfrage zur Verfügung. Nutzt du den Dienst nicht, sind in derweb.xmlkeine Anpassungen nötig.
PDF-Verarbeitungsdienst unter Linux
- Installiere LibreOffice:
apt install libreoffice - Kopiere die
jod-server.jarnach/opt/jod-server/. - Erstelle
/opt/jod-server/config.properties:port=3902 threads=2 whitelist=*portist frei wählbar. Um eine IP-Adresse freizugeben, gib sie unterwhitelistals RegEx an. - Lege Benutzer und Gruppe an:
groupadd -r jod useradd -r -s /bin/false -g jod jod chown jod: /opt/jod-server - Erstelle
/etc/systemd/system/jod.service:[Unit] Description=JOD-Server [Service] WorkingDirectory=/opt/jod-server ExecStart=/bin/java -jar jod-server.jar User=jod Type=simple Restart=on-failure RestartSec=15 [Install] WantedBy=multi-user.target - Aktiviere den Dienst:
systemctl daemon-reload systemctl enable jod.service - Ergänze in der
web.xmlvon projectfacts den Eintrag (oder passe ihn an):<context-param> <param-name>pdfConvertService.url</param-name> <param-value>127.0.0.1:3902</param-value> </context-param>
PDF-Verarbeitungsdienst unter Windows
- Lege unter
C:\projectfacts\den Ordnerjod-serveran (C:\projectfacts\jod-server) und kopiere diejod-server.jarhinein. - Erstelle die Datei
jod-server-start.bat:java -Dserver.port=3902 -jar jod-server.jar - Lege eine Aufgabenplanung an, damit die Batch-Datei nach dem Serverstart automatisch ausgeführt wird.
- Ergänze in der
web.xmldenpdfConvertService.url-Eintrag (siehe Linux-Schritt 7).
SSL-Zertifikat in den Java-Truststore importieren
In einigen Fällen muss ein SSL-Zertifikat in den Java-Truststore importiert werden – etwa bei einer LDAP-SSL-Verbindung (siehe LDAP-Anmeldung anbinden). Ohne das Zertifikat ist die verschlüsselte Verbindung nicht möglich.
Der Standard-Keystore liegt im Java-Verzeichnis unter:
- Linux:
/lib/security/cacerts - Linux (alternativ):
/usr/lib/jvm/java-17-openjdk-amd64/lib/security/cacerts - Windows:
C:\Program Files\Java\jre1.8.0_221\lib\security\cacerts
Das Passwort für den Standard-Keystore lautet changeit.
Zertifikate auflisten:
keytool -list -keystore cacerts
Zertifikat importieren:
keytool -keystore cacerts -importcert -alias [name eingeben] -file [name eingeben].cer
Bestätige die Rückfrage, ob du dem Zertifikat vertraust, mit Ja.
Alternativ kannst du den Truststore mit dem Tool Portecle (Homepage, Download) grafisch bearbeiten, importieren und exportieren. Das Vorgehen unter Windows ist gleich – nur die Pfade unterscheiden sich.
OAuth 2.0 Login – Microsoft-365-Mailkonten
Damit OAuth 2.0 für Microsoft-365-Mailkonten genutzt werden kann, muss deine URL in unsere Whitelist eingetragen werden. Teile uns dazu deine URL mit. Die zugehörige oauth2Gateway.url wird in der web.xml gesetzt (bei projectfacts https://www.projectfacts.de, bei teamspace https://www.teamspace.de).
Bei Fragen oder Unterstützung wende dich an support@projectfacts.de.
Tomcat 9 manuell unter Debian 12 installieren
Unter Debian 12 wird aus dem Repository kein Tomcat 9 bereitgestellt. Wird Tomcat 9 benötigt, installiere ihn manuell.
Java 17 installieren
Falls noch nicht vorhanden:
apt update && apt install openjdk-17-headless
Installation prüfen:
java -version
Benutzer und Gruppe anlegen
groupadd tomcat9 && useradd -s /bin/false -g tomcat9 -d /opt/tomcat tomcat9
Tomcat 9 herunterladen und entpacken
Lade die gewünschte Version von der offiziellen Archivseite herunter:
cd /tmp && wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.98/bin/apache-tomcat-9.0.98.tar.gz
mkdir /opt/tomcat && tar xzvf apache-tomcat-*.tar.gz -C /opt/tomcat
Berechtigungen anpassen
cd /opt/tomcat && chown -R tomcat9:tomcat9 /opt/tomcat/apache-tomcat-9.0.98
Symlink erstellen
ln -s /opt/tomcat/apache-tomcat-9.0.98 /opt/tomcat/live
systemd-Datei anlegen
JAVA_HOME-Pfad herausfinden:
update-java-alternatives -l
Lege die Datei /etc/systemd/system/tomcat.service an und passe den JAVA_HOME-Pfad an:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/opt/tomcat/live/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat/live
Environment=CATALINA_BASE=/opt/tomcat/live
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat9
Group=tomcat9
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
- JAVA_HOME: den ermittelten Java-Pfad eintragen.
- CATALINA_OPTS: hier den RAM-Bedarf anpassen.
Daemon neu laden, Tomcat aktivieren und Status prüfen:
systemctl daemon-reload && systemctl enable --now tomcat && systemctl status tomcat
Der Tomcat 9 ist nun installiert und liegt unter /opt/tomcat.
Häufige Probleme
Warum kommt die verschlüsselte LDAP-Verbindung (LDAP über SSL) nicht zustande? Ohne das LDAP-Zertifikat im Java-Truststore schlägt die verschlüsselte Verbindung fehl. Importiere es zuerst – das beschreibt „SSL-Zertifikat in den Java-Truststore importieren” weiter oben.
Warum dürfen sich Benutzer einer Gruppe nicht einloggen?
Über ldap.groupDN legst du fest, welcher Gruppe ein Benutzer angehören muss, um sich anmelden zu dürfen. Prüfe, ob der DN stimmt und der Benutzer Mitglied ist.
Warum wird ein Benutzer nicht gefunden?
Such-Basis und Suchfilter müssen passen: ldap.userBaseDN bestimmt, wo gesucht wird, ldap.userSearch den Filter (Platzhalter {0}), ldap.userUID das identifizierende Attribut (beim AD i. d. R. sAMAccountName).
Warum werden Word-Dokumente nicht in PDF umgewandelt?
Ohne laufenden JOD-Server fehlt die Umwandlung. Richte den Dienst ein und trage pdfConvertService.url in der web.xml ein (z. B. 127.0.0.1:3902). Ist der Wert leer, ist die Funktion aus.
Warum startet der PDF-Verarbeitungsdienst nach einem Server-Neustart nicht von selbst?
Unter Linux aktivierst du ihn mit systemctl enable jod.service, unter Windows legst du eine Aufgabenplanung für die jod-server-start.bat an.
Warum greift der konfigurierte Port des PDF-Verarbeitungsdienstes nicht?
Port aus config.properties (Linux) bzw. der .bat (Windows) und der Wert in pdfConvertService.url der web.xml müssen übereinstimmen.
Welches Passwort hat der Java-Standard-Keystore?
Das Standard-Passwort für den Keystore (cacerts) lautet changeit. Damit listest, importierst und exportierst du Zertifikate über keytool.
Warum gibt es unter Debian 12 keinen Tomcat 9 aus dem Repository? Debian 12 stellt nur Tomcat 10 bereit. Brauchst du Tomcat 9, installiere ihn manuell (siehe „Tomcat 9 manuell unter Debian 12 installieren” weiter oben).
Typische Fragen & Anforderungen
| Du möchtest … | So geht’s |
|---|---|
| Login per Formular durch Basic Auth ersetzen | app.authMethod auf „basic” setzen. |
| Anmeldung soll auch bei LDAP-Ausfall kurz funktionieren | ldap.allowOfflineLogin (in Stunden) setzen. |
| Nur Mitglieder einer bestimmten Gruppe zulassen | Die Gruppe über ldap.groupDN festlegen. |
| LDAP über SSL verbinden | Zuvor das Zertifikat in den Java-Truststore importieren (siehe SSL-Zertifikat in den Java-Truststore importieren). |
| Word-Dokumente als PDF erzeugen | Den JOD-Server einrichten und pdfConvertService.url in der web.xml setzen. |
| Einen anderen Port für den PDF-Dienst verwenden | In config.properties (Linux) bzw. der .bat (Windows) den Port ändern und in der web.xml angleichen. |
| Den PDF-Dienst nach Serverstart automatisch starten | Linux: systemctl enable jod.service. Windows: Aufgabenplanung für die .bat. |
Verwandte Themen
- Versionsspezifische Update-Hinweise Installation Referenz
- teamspace unter Linux installieren Installation Konfiguration
- teamspace mit Docker installieren Installation Konfiguration
- So ist teamspace technisch aufgebaut Installation Konzept
- Einführung in die Berechtigungen Berechtigungen Einführung