- de:shibidp:prepare-java|Vorarbeiten: Java/OpenJDK ^ de:shibidp:uebersicht|Überblick: Tutorial zur IdP-Inbetriebnahme ^ de:shibidp:prepare-zert|Vorarbeiten: Zertifikate ->
====== IdP-Vorarbeiten: Tomcat ======
===== Installation =====
==== Debian 10/11 ====
root@idp:~# apt install tomcat9
==== CentOS 7 ====
CentOS 7 bringt über das Repository noch Tomcat 7 mit. Neuere Versionen können Sie manuell installieren.
root@idp:~# yum -y install tomcat
==== OpenSUSE Leap 15.1 ====
OpenSUSE Leap 15 kommt mit Tomcat 9.
root@idp:~# zypper install tomcat
===== Startup-Konfiguration =====
Einige globale Java-Parameter müssen beim Tomcat-Start festgelegt werden. Das IdP-Servlet benötigt mehr Speicher, als gemäß den Voreinstellungen vorgesehen ist und Zugriff auf das Filesystem:
==== Debian 10/11 ====
# den Tomcat mit genug Speicher starten:
JAVA_OPTS="-Djava.awt.headless=true -Xms1024m -Xmx2048m"
Für die Schreibberechtigungen vom Tomcat muss eine Override-Konfiguration für Systemd angelegt werden:
root@idp:~# systemctl edit tomcat9.service
Dadurch wird unter ''/etc/systemd/system/tomcat9.service.d'' eine Datei ''override.conf'' angelegt, die Sie wie folgt editieren und speichern:
[Service]
ReadWritePaths=/opt/shibboleth-idp/logs/
ReadWritePaths=/opt/shibboleth-idp/metadata/
==== CentOS und OpenSUSE ====
Die Tomcat-Start-Optionen werden in ''/etc/tomcat/tomcat.conf'' festgelegt.
===== Port-Konfiguration =====
In der Tomcat-Configuration wird dann
* aus Sicherheitsgründen der Default-Port 8080 abgeschaltet
* auf Port 8009 der AJP-Connector aktiviert über den der vorgelagerte Webserver Anfragen an Tomcat weiterleitet
* Die letzte Einstellung secretRequired kann auf false gesetzt werden, wenn der AJP-Connector innerhalb eines vertrauenswürdigen Netzwerks läuft. Steht das Setting auf true, so muss zusätzlich das secret angegeben werden ([[https://tomcat.apache.org/tomcat-9.0-doc/config/ajp.html|siehe Tomcat-Doku]]).
IdP-Sessions gehen bei einem Tomcat-Neustart in jedem Fall verloren. Daher ergibt es keinen Sinn (bzw. führt nur zu unnötigen IdP-Fehlermeldungen), einzustellen, dass alte Sessions über Tomcat-Neustarts persistiert werden sollen. Deaktivieren Sie daher dieses Tomcat-Feature:
WEB-INF/web.xml
WEB-INF/tomcat-web.xml
${catalina.base}/conf/web.xml
===== Java Standard Tag Library (JSTL) =====
==== Debian 10/11 ====
Unter Debian 10 und 11 kann die JSTL aus dem Debian-Repository installiert werden:
root@idp:~# apt install libtaglibs-standard-impl-java
Anschließend muss der Pfad zur .jar-Datei noch ''/etc/tomcat9/catalina.properties'' hinzugefügt werden:
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","/usr/share/java/*.jar"
==== OpenSUSE Leap 15.1 ====
root@idp:~# zypper install jakarta-taglibs-standard
===== Konfiguration für das IdP-Servlet vorbereiten =====
Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context:
**Sie haben jetzt eine Tomcat-Konfiguration, die nicht startet, solange nichts unter /opt/shibboleth liegt!**
Weiter geht es mit den [[de:shibidp:prepare-zert|Zertifikaten]].
{{tag>idp4 tutorial included-in-ansible}}