Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:shibidp3prepare-tomcat [2017/11/10 14:25] Wolfgang Pempede:shibidp3prepare-tomcat [2019/08/15 16:16] – [Java Standard Tag Library (JSTL)] Silke Meyer
Zeile 3: Zeile 3:
 ==== Installation ==== ==== Installation ====
  
-===Debian 8===+=== Debian 10 ===
  
 <code bash> <code bash>
-root@idp:~# apt-get install tomcat8+root@idp:~# apt install tomcat9
 </code> </code>
  
-Hinweis: Sofern Sie tomat8 aus Debian-Backports verwenden (nicht unbedingt nötig) brauchen Sie auch +=== Debian 8/9 ===
-das Paket 'libservlet3.1-java' um den IdP betreiben zu können.+
  
-===RHEL===+<code bash> 
 +root@idp:~# apt-get install tomcat8 
 +</code>
  
-EPEL installieren+=== CentOS 7 === 
 + 
 +CentOS 7 bringt über das Repository noch Tomcat 7 mit. Neuere Versionen können Sie manuell installieren.
  
-RHEL/CentOS 6 32-Bit 
 <code bash> <code bash>
-wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm +root@idp:~# yum -y install tomcat
-rpm -ivh epel-release-6-8.noarch.rpm+
 </code> </code>
-RHEL/CentOS 6 64-Bit + 
-<code bash> +=== OpenSUSE Leap 15.1 === 
-wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm + 
-rpm -ivh epel-release-6-8.noarch.rpm +OpenSUSE Leap 15 kommt mit Tomcat 9
-</code> +
-EPEL verifizieren +
-<code bash> +
-yum repolist +
-</code> +
-EPEL aktivieren+
 <code bash> <code bash>
-yum-config-manager --enable epel  +root@idp:~# zypper install tomcat
-</code> +
-<code bash> +
-yum install tomcat+
 </code> </code>
  
-==== Java-Konfiguration ====+==== 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: 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 ====+=== Debian 10 === 
 + 
 +<file bash /etc/default/tomcat9> 
 +# den Tomcat mit genug Speicher starten: 
 +JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -Xms1024m -Xmx2048m" 
 +</file> 
 + 
 +<file ini /etc/systemd/system/tomcat9.service.d/override.conf> 
 +[Service] 
 +ReadWritePaths=/opt/shibboleth-idp/logs/ 
 +ReadWritePaths=/opt/shibboleth-idp/metadata/ 
 +</file> 
 + 
 +=== Debian 8/9 ===
  
-<file bash /etc/default/tomcat8>+<file bash /etc/default/tomcat[8|9]>
 # den Tomcat mit genug Speicher starten: # den Tomcat mit genug Speicher starten:
-JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -Xms1024m -Xmx2048m +JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -Xms1024m -Xmx2048m"
 # Zugriff auf das File-System: # Zugriff auf das File-System:
 TOMCAT8_SECURITY=no TOMCAT8_SECURITY=no
 </file> </file>
  
-=== CentOS/RHEL ===+=== CentOS und OpenSUSE ===
  
-Die Tomcat-Start-Optionen werden in /etc/tomcat8/tomcat8.conf festegelegt.+Die Tomcat-Start-Optionen werden in ''/etc/tomcat/tomcat.conf'' festgelegt.
  
 ==== Port-Konfigurtion ==== ==== Port-Konfigurtion ====
Zeile 62: Zeile 68:
   * auf Port 8009 der AJP-Connector aktiviert über den der vorgelagerte Webserver Anfragen an Tomcat weiterleitet   * auf Port 8009 der AJP-Connector aktiviert über den der vorgelagerte Webserver Anfragen an Tomcat weiterleitet
  
-<file xml /etc/tomcat8/server.xml+<file xml /etc/tomcatX/server.xml>
-<Server port="8005" shutdown="SHUTDOWN">+
    <!-- ... -->    <!-- ... -->
   <Service name="Catalina">   <Service name="Catalina">
Zeile 82: Zeile 87:
                URIEncoding="UTF-8" />                URIEncoding="UTF-8" />
     <!-- ... -->     <!-- ... -->
-  </Service> +  </Service>
   <!-- ... -->   <!-- ... -->
-</Server> +</file>
-</file>  +
- +
-Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context: +
-<code xml /etc/tomcat8/Catalina/localhost/idp.xml> +
-<Context docBase="/opt/shibboleth-idp/war/idp.war" +
-         privileged="true" +
-         unpackWAR="true" +
-         antiResourceLocking="false" +
-         swallowOutput="true" /> +
-</code> +
- +
-**Achtung:** Unter CentOS 7 und Tomcat 7 muss ''unpackWAR="false"'' gesetzt werden!+
  
-IdP-Sessions gehen bei einem Tomcat-Neustart in jedem Fall verloren. Daher macht es keinen Sinn +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:
-(bzw. führt nur zu unnötigen IdP-Fehlermeldungen) wenn alte Sessions bei einen Tomcat-Neustart weiter +
-existieren. Deaktivieren Sie daher dieses Tomcat-Feature:+
  
-<code xml /etc/tomcat8/context.xml>+<file xml /etc/tomcatX/context.xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
 <!-- <!--
Zeile 121: Zeile 112:
  
 </Context> </Context>
 +</file>
 +
 +==== Java Standard Tag Library (JSTL) ====
 +=== Debian 10 ===
 +Unter Debian 10 kann die JSTL aus dem Debian-Repository installiert werden:
 +<code bash>
 +root@idp:~# apt install libtaglibs-standard-impl-java
 </code> </code>
-====Java Server Tag Library (JSTL)==== 
  
-Als letztes muss noch die Java Server Tag Library heruntergeladen und in das Tomcat-Verzeichnis $CATALINA_BASE/lib gelegt werden (unter Debian/Unbuntu ist das /var/lib/tomcat8/lib, bei anderen Distributionen bitte entsprechend anpassen):+Anschließend muss der Pfad zur .jar-Datei noch ''/etc/tomcat9/catalina.properties'' hinzugefügt werden: 
 + 
 +<file xml /etc/tomcat9/catalina.properties> 
 +common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","/usr/share/java/*.jar" 
 +</file> 
 + 
 +=== Debian 8/9 === 
 +Unter Debian 8 und 9 muss die fehlerfreie Version der Java Standard Tag Library heruntergeladen und in das Tomcat-Verzeichnis $CATALINA_BASE/lib gelegt werden. Unter Debian/Ubuntu ist das ''/var/lib/tomcat8/lib'', bei anderen Distributionen passen Sie den Pfad ggf. entsprechend an:
  
 <code bash> <code bash>
 root@idp:~# wget https://build.shibboleth.net/nexus/service/local/repositories/thirdparty/content/javax/servlet/jstl/1.2/jstl-1.2.jar \ root@idp:~# wget https://build.shibboleth.net/nexus/service/local/repositories/thirdparty/content/javax/servlet/jstl/1.2/jstl-1.2.jar \
              -O /var/lib/tomcat8/lib/jstl-1.2.jar              -O /var/lib/tomcat8/lib/jstl-1.2.jar
 +</code>
 +
 +=== OpenSUSE Leap 15.1 ===
 +
 +<code bash>
 +root@idp:~# zypper install jakarta-taglibs-standard
 </code> </code>
  
Zeile 136: Zeile 146:
  
 <code bash> <code bash>
-root@idp:~# systemctl restart tomcat8+root@idp:~# systemctl restart tomcatX
 </code> </code>
  
-Lassen Sie am besten beim restart des Tomcat in einem zweiten Fenster den Tomcat-Log mitlaufen um zu sehen +Behalten Sie beim Neustart in einem zweiten Fenster das Tomcat-Log im Blick, um zu sehenob es beim Start Probleme gibt:
-ob es beim Start Probleme gibt:+
  
 <code bash> <code bash>
-root@idp:~# tail -f /var/log/tomcat8/catalina.out+root@idp:~# tail -f /var/log/tomcatX/catalina.DATUM.log 
 +# oder 
 +root@idp:~# journalctl -u tomcat -f
 </code> </code>
  
-Sofern der Tomcat nicht fehlerfrei startet sollten Sie dem erst nachgehen bevor Sie mit dieser Anleitung weiter machen. Wenn im Log die Meldung "Server startup in XXXXX ms" kommt ist der Tomcat betriebsbereit. Kontrollieren Sie dann ob die Port-Konfiguration erfolgreich war und der Tomcat nur noch an zwei Ports auf Localhost lauscht:+Sofern der Tomcat nicht fehlerfrei startet sollten Sie dem erst nachgehenbevor Sie mit dieser Anleitung weiter machen. Wenn im Log die Meldung "Server startup in XXXXX ms" kommtist der Tomcat betriebsbereit. Kontrollieren Sie dannob die Port-Konfiguration erfolgreich war und der Tomcat nur noch an 1-2 Ports auf Localhost lauscht. Der **Port 8005** ist bei Debian/Ubuntu mit Tomcat8 sowieso OpenSUSE mit Tomcat 9 noch standardmäßig offen, bei Debian/Ubuntu mit Tomcat9 nicht mehr. Das ist okay so.
  
 <code bash> <code bash>
-root@idp:~# netstat -tlpen | grep java +root@idp:~# netstat -tlpn | grep java 
-tcp6            0 127.0.0.1:8005          :::*                    LISTEN      118        5994188     2594/java +(tcp6        0 127.0.0.1:8005    :::*    LISTEN   2594/java) 
-tcp6            0 127.0.0.1:8009          :::*                    LISTEN      118        5993661     2594/java+ tcp6        0 127.0.0.1:8009    :::*    LISTEN   2594/java
 </code> </code>
  
 +==== Konfiguration für das IdP-Servlet vorbereiten ====
 +Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context:
 +
 +<file xml /etc/tomcatX/Catalina/localhost/idp.xml>
 +<Context docBase="/opt/shibboleth-idp/war/idp.war"
 +         privileged="true"
 +         unpackWAR="true"
 +         antiResourceLocking="false"
 +         swallowOutput="true" />
 +</file>
  
-====Tomcat 7=====+**Achtung:**  Unter CentOS 7 und Tomcat 7 muss ''unpackWAR="false"''  gesetzt werden!
  
-Wir empfehlen Tomcat8siehe obenFalls Sie noch Tomcat7 einsetzen, ist das folgende vielleicht hilfreich:+Solange nichts unter /opt/shibboleth liegtstartet der Tomcat jetzt nur mit Fehlern neu.
  
-Sollte es beim Neustart nach Installation und Konfiguration des IdP folgender Fehlermeldung kommen:\\ +Weiter geht es mit [[:de:shibidp3prepare-http|HTTP-Server]].
-> "Resource specification not allowed here for source level below 1.7"\\ +
-... so muss die Tomcat-eigene web.xml angepasst werden. Siehe hierzu http://www.censore.blogspot.in/2015/04/how-to-set-tomcat-7-source-level-to.html \\ +
-Bei Debian/Ubuntu liegt diese Datei unter /etc/tomcat7/web.xml, bei SLES 12 unter /usr/share/tomcat/conf/web.xml+
  
  
-Weiter geht es mit [[de:shibidp3prepare-http|HTTP-Server]].