Tomcat konfigurieren

In der INUBIT-Software wird Tomcat eingesetzt.

Die folgende Tabelle bietet einen Überblick über einige Konfigurationsmöglichkeiten:

Was? Wo?

Servlet-Konfiguration

<inubit-installdir>/inubit/server/process_engine/webapps/ibis/WEB-INF/web.xml

JVM-Speicher ändern (Process Engine)

<inubit-installdir>/inubit/server/process_engine/bin/setenv.[bat|sh]

set JAVA_PARAMS=-Xmx2048M

Log-Datei konfigurieren

Tomcat loggt in die Datei <inubit-installdir>/inubit/server/process_engine/logs/catalina.out bzw. *.log.

Nur Linux

Diese Log-Datei rotiert nicht, wächst unbegrenzt und kann dadurch Probleme verursachen. Um die maximale Größe der Tomcat-Log-Datei zu definieren und die Logdatei rotieren zu lassen, können Sie das Programm cronolog nutzen.

Automatisches Herunterfahren deaktivieren

Die INUBIT Process Engine erkennt Fehler beim Herunterfahren und beendet den Prozess korrekt, falls nötig.

Dieses Verhalten ist standardmäßig aktiviert, kann aber auch über die Workbench deaktiviert werden (Administration > Allgemeine Einstellungen > Verwaltung > Server > Stoppe Server-Prozess falls nötig).

Das Deaktivieren ist sinnvoll, wenn der Status der INUBIT Process Engine durch kundenspezifische Skript-Lösungen überwacht und gesteuert wird.

Sobald Tomcat startet, wird die aktuelle Prozess-ID der INUBIT Process Engine in die Datei <inubit-installdir>/inubit/server/process_engine/bin/catalina.pid geschrieben.

Diese ID kann mit externen Skripts verwendet werden, um den Zustand der INUBIT Process Engine zu erkennen:

  • Linux

    ps aux | grep | cat catalina.pid
  • Windows

    tasklist /FI "PID eq <PID>"

Erläuterung

Um auf URLs (z.B. via Browser) innerhalb des Tomcats, also eine im Tomcat liegenden Applikation (wie INUBIT) gesichert zugreifen zu können, werden diese mit Credentials abgesichert. Da alle Aufrufe durch den Tomcat laufen, werden sie auch auf dieser Ebene abgesichert.

Der Tomcat löst bei Aufruf einer URL alle dazu konfigurierten Rollen entsprechend auf und erlaubt nur den Zugriff mit den hinterlegten Credentials zu diesen konfigurierten Rollen. Standardmäßig sind die Credentials in der Datei tomcatusers.xml hinterlegt.

Beispiel-Implementierung in der INUBIT‑Standardinstallation:

  • Tomcat server.xml:
    Es ist ein sogenannter Realm definiert, der die Nutzer und Passwörter enthält. Der Realm zeigt auf die Datei tomcat-users.xml. Man kann ihn nachträglich auch ändern, siehe https://tomcat.apache.org/tomcat-9.0-doc/realm-howto.html.

  • INUBIT web.xml:
    Beispiel: Rolle ibisaccess, die auf die Ressource List Web Services Servlet zugreifen darf.

    <security-constraint>
    <web-resource-collection>
    <web-resource-name>List Web Services Servlet</web-resource-name>
    <url-pattern>/listServices</url-pattern>
    </web-resource-collection>
    <auth-constraint>
    <role-name>ibisaccess</role-name>
    </auth-constraint>
    </security-constraint>

    Dieses Vorgehen gilt für jede Applikation innerhalb des Tomcats. Es können ein oder mehrere Rollennamen referenziert werden, die Zugriff auf diese Ressource haben sollen.

  • INUBIT tomcat-users.xml:
    Beispiel: User root `für die Rolle `ibisaccess

    <tomcat-users xmlns="http://tomcat.apache.org/xml"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
    version="1.0">
    <role rolename="ibisaccess"/>
    <user username="root" password="meinPasswort" roles="ibisaccess"/>
    </tomcat-users>

Bei Aufruf der Resource https://<server>:<port>/ibis/listServices ist der Benutzername root und Passwort meinPasswort gültig und wird durchgelassen. Alle anderen Credentials werden abgelehnt und der Inhalt der Ressource nicht angezeigt.

Fügt man weitere Applikationen im Tomcat hinzu, z.B. Tomcat Manager, AS4 Gateway und definiert in der web.xml der jeweiligen Applikation weitere URLs mit Rollenreferenz, verhält es sich analog.