IES Konfiguration

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

IES-Konfiguration

Der IES ist ein Java-Prozess, dessen Start-Parameter in der Datei /etc/sitepark/sitepark.conf (bzw. unter Windows ies2.ini) konfiguriert wird. Hier werden Angaben zum Speicherverbrauch o.ä. vorgenommen. Details hierzu finden Sie hier für Linux (bzw. hier für Windows).

Der IES selber wird über eine zentrale XML-Datei gesteuert. Die Konfiguration erfolgt automatisch über die graphische Oberfläche des IESAdmin. Hier wird dennoch die Struktur der Datei kurz aufgeführt. Einige sehr spezielle Optionen lassen sich nur in dieser Datei anpassen. Der Aufruf von

iesadmin reload-config

bzw. der entsprechende Button im IESAdmin-Webinterface laden diese Datei neu ein.

Beispiel einer ies-server.xml

<?xml version="1.0" encoding="UTF-8"?>
<ies-server>

  <!-- System-Bundles bilden typische Kombinationen von Modulen ab -->
  <bundles>
    <bundle>cms</bundle>
  </bundles>

  <!-- Globale Parameter -->
  <settings>
    <property name="dataDir" value="/srv/sitepark/data" />
    <property name="sessionTimeout" value="120" />
    <property name="maxRepositoryVersions" value="50" />
    <property name="maxObjectCacheSize" value="10000" />
    <property name="objectCacheLifetime" value="43200" />
    <property name="maxLockTime" value="10" />
    <property name="defaultLocale" value="de_DE" />
    <property name="privateCryptKey" value="963249068513792696390639" />
    <property name="availableLocales" value="cs,de,en,es,et,fr,hu,it,lt,lv,nl,pt,ro,sk,sl,cs_CZ,da_DK,de_AT,de_CH,de_DE,de_LU,el_GR,en_GB,en_IE,es_ES,fr_BE,fr_CH,fr_FR,fr_LU,hu_HU,it_CH,it_IT,ja_JP,nl_BE,nl_NL,pl_PL,pt_PT,ru_RU,sk_SK,sv_SE,tr_TR,zh_CN" />
    <property name="bindbScaleSteps" value="40,100,500,h40" />
    <property name="iesadmin.update.url" value="http://user:password@ies.sitepark.com/updater/" />
    <property name="http.proxyHost" value="" />
    <property name="http.proxyPort" value="" />
    <property name="https.proxyHost" value="" />
    <property name="https.proxyPort" value="" />
    <property name="http.nonProxyHosts" value="localhost,127.0.0.1" />
  </settings>

  <!-- Zugriffe auf IESAdmin -->
  <security>
    <user login="manager" password="b29fa62a183463dd119bf22cde912b9f" roles="management" />
  </security>

  <!-- Konfiguration des Logging -->
  <logging>
    <appender name="IES" type="rolling-file" file="/srv/sitepark/ies.log" append="true" maxFileSize="100MB" maxBackups="1" />
    <logger name="com.sitepark.ies" level="TRACE" appender="IES" />
    <logger name="com.sitepark.ies.management.servlet" level="ERROR" appender="IES" />
    <logger name="com.sitepark.imgfile" level="ERROR" appender="IES" />
    <logger name="net.sf.jmimemagic" level="ERROR" appender="IES" />
  </logging>

  <!-- Datenbank- und Mandanten-Konfigurationen und Root-Zugänge der jeweiligen Datenbank-Server -->
  <persistence>
    <admin type="1" host="localhost" user="root" password="secret" />
    <db id="1" name="testdb" type="1" host="localhost" port="3306" database="testdb" user="testdbuser" password="sdfg346hjk" is-ies-database="true" parameter="useUnicode=true,connectionCollation=utf8_general_ci,characterEncoding=UTF-8">
      <client id="1" anchor="testclient" name="Testsystem" webapps="infosite," disabled="false">
        <attributes />
        <ref element="publisher" id="1" type="file" />
        <ref element="publisher" id="2" type="file" />
        <ref element="publisher" id="3" type="database" />
      </client>
    </db>
    <db id="2" name="dbpublisher" type="1" host="localhost" port="3306" database="dbpublisher" user="dbpublisher" password="24dfh578s234" is-ies-database="false" parameter="useUnicode=true,connectionCollation=utf8_general_ci,characterEncoding=UTF-8" />
  </persistence>

  <!-- Konfiguration der IES Dienste -->
  <services>
    <service id="lock-scheduler" status="stop" />
    <service id="publisher" />
    <service id="link" />
    <service id="ldap" />
    <service id="email-validator" />
    <service id="compiler" />
    <service id="report" />
    <service id="article-observer" />
    <service id="counter" disabled="false" />
    <service id="linktree" />
    <service id="r" />
    <service id="task" />
    <service id="indexer">

      <!-- Konfiguration von Indices werden innerhalb des Service abgelegt -->
      <index id="1" anchor="testindex" client="100010100000000000-0" name="testindex" indexdir="/srv/sitepark/data/indexes/1-1/testindex">
        <field name="sp_headline" default="" type="text" boost="2.0" store="true" />
      </index>

    </service>
    <service id="ldap-import" />
    <service id="observer" />
    <service id="dependencies" disabled="false" />
  </services>

  <!-- Optionale Konfiguration einer LDAP Anbindung -->
  <ldap />

  <!-- Konfiguration der Publisher (jeder Publisher-Typ wird in einem separatem Bereich konfiguriert) -->
  <publisher>
    <file>
      <file-publisher id="1" name="www.domain.loc" document-root="/var/www/domain.loc/www" url="http://www.domain.loc" locale="default" is-module="true" encoding="UTF-8" personalization-datasource="1" aliases="https://domain.loc&#xA;https://www.domain.loc&#xA;http://domain.loc" anchor="www">
        <attributes />
      </file-publisher>
      <file-publisher id="2" name="preview.domain.loc" document-root="/var/www/domain.loc/preview" url="http://preview.domain.loc" encoding="UTF-8" is-module="false" locale="default" aliases="http://preview.domain.loc/irgendwo&#xA;http://preview.domain.loc:80&#xA;http://preview.domain.loc:80/irgendwo/">
        <attributes />
      </file-publisher>
    </file>
    <database>
      <database-publisher id="3" name="DB" database="2">
        <attributes />
      </database-publisher>
    </database>
  </publisher>

  <!-- Konfiguration der Module -->
  <modules>
    <module id="ies" disabled="false" />
    <module id="infosite" disabled="false" />
  </modules>

</ies-server>

Erweiterte Datenbank-Parameter

Für die Konfiguration von Datenbank-Verbindungen im IES können neben den Parametern die im IES-Admin konfiguriert werden können noch folgende, erweiterte Setzungen vorgenommen werden:

max-pool-size="20"
Konfiguration des Pools für parallelen Datenbank-Verbindungen
Dieser Wert kann u.U. bei vielen Live-Zugriffen erhöht werden. Entsprechende Meldungen in den Log-Files würden dann darauf hinweisen. (Default: 20)
blocking-timeout-millis="30000"
Konfiguration der Dauer in Millisekunden, die der IES maximal auf eine Datenbank-Verbindungen des Pools wartet
Auch dieser Wert muss i.d.R. nicht verändert werden. (Default: 30000)
track-statements="false"
Erweitertes Logging bei Datenbank-Problemen
Dieser Wert wird aktuell noch nicht verwendet. (Default: false)

Diese müssen bei Bedarf direkt in der Konfiguration der jeweiligen Datenbankverbindung angegeben werden. Danach bleiben diese auch bei Änderungen im IESAdmin erhalten.

IES-Backupverzeichnis ($SITEPARK_BACKUP)

Im Backupverzeichnis werden alle Daten zur Sicherung von Mandanten gespeichert. Dieses Verzeichnis sollten Sie regelmäßig über ein externes Backup sichern. Informationen zum Thema IES Backup finden Sie hier.

Über das Property backupDir kann das Backupverzeichnis des IES geändert werden. Ist keine Konfiguration vorhanden, so wird der Ordner $SITEPARK_HOME/backup angenommen. Stellen sicher, dass der IES wieder vollen Zugriff auf den Ordner erhält (chown -R ies.ies).

IES-Datenverzeichnis ($SITEPARK_DATA)

Im Datenverzeichnis des IES werden alle Daten der Module und die BinDB mit allen Medien gespeichert.

Über das Property dataDir kann das Datenverzeichnis des IES geändert werden. Neben Sie ein Anpassung nur vor, wenn der IES gestoppt wurde. Verschieben Sie alle alten Daten entsprechend in das neue Verzeichnis und stellen sicher, dass der IES wieder vollen Zugriff erhält (chown -R ies.ies).

Zugriff auf den IES per Ilink, wenn dieser per htaccess geschützt ist

In diesem Fall muss der Browser via JavaScript entsprechende Header setzen. Dazu sind im Webserver folgende HEADER-Setzungen zu machen:

Header set Access-Control-Allow-Origin "https://www.website.de"
Header set Access-Control-Allow-Methods "POST, GET, OPTIONS"
Header set Access-Control-Allow-Credentials true

Und in der IES-Konfiguration ist ein manueller Eintrag notwendig:

<property name="host.withCredentials" value="true" />

Systeme unterscheiden (Test- oder Schulungssysteme)

Es besteht die Möglichkeit eine IES-Installation global mit einem in InfoSite 6 sichtbaren Label zu versehen um z.B. eine Testsystem mit identischen Daten für die Redakteure kenntlich zu machen. Folgende Setzungen sind möglich und können pro Mandant auch noch überschrieben werden:

  • Label
  • Farbe (bekannter Name (z.B. "white") oder Farbcode (z.B. "#FFFFFF")

In der IES-Konfiguration (XML-Encoded) sind das z.B. wie folgt aus:

<property name="systemIdentification" value="{label:&quot;Testsystem&quot;,color:&quot;lightblue&quot;}" />

Um im Mandanten diese globale Einstellung zu überschreiben kann in IES-Admin bei den Attributen des Mandaten folgende Setzung vorgenommen werden:

systemIdentification={label:"Demosystem"}

oder

systemIdentification={label:"Schulungssystem", color="green"}

oder um die globale Setzung zurückzunehmen

systemIdentification={}

Session-Steuerung

Das System erlaubt die freie Konfiguration der Sitzungsdauer für Redakteure und WebAccounts. Die Sitzungsdauer für WebSessions und redaktionelle Arbeiten im CMS ist in Minuten anzugeben. Hier werden die Standard-Setzungen angezeigt (2 Stunden, 10 Tage):

    <property name="sessionTimeout" value="120" />
    <property name="webSessionTimeout" value="14400" />

Nach Ablauf dieser Zeiten werden die Sessions in der Datenbank entfernt. Darüber hinaus können die Setzungen der notwendigen Cookies konfiguriert werden (z.B. Gültigkeit nur für die aktuelle Browser-Session).

Passwort-Steuerung

Über verschiedene, optionale Attribute in der Konfiguration kann die Verwaltung von Passwörtern gesteuert werden.

    <property name="password.expirationPeriod" value="90" />
    <property name="password.minLength" value="4" />
    <property name="password.regexp" value="^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&amp;+=])(?=\S+$).{8,}$" />
    <property name="password.algorithm" value="scrypt" />
    <property name="password.bcrypt.params" value="{cost=10}" />
    <property name="password.scrypt.params" value="{N=16384,r=8,p=1}" />
    <property name="password.pbkdf2.params" value="{iterations=1000,keyLength=512}" />

Gültigkeitsdauer

Nach der hier angegebenen Anzahl von Tagen wird ein Nutzer, sofern bei diesem gesetzt wurde, dass das Passwort zeitlich limitiert ist, eine Meldung ausgegeben, die zur Neueingabe eines Passwortes auffordert. Neben der globalen Konfiguration kann diese Funktion auch über folgendes Attribut am Mandanten konfiguriert werden (default 90 Tage):

password.expirationPeriod

Minimale Passwort-Länge

Anzahl der Zeichen, die ein Passwort mind. lang sein soll.

password.minLength

Regulärer Ausdruck als Regel für Passwörter

Über einen regulären Ausdruck kann die Eingabe von beliebig komplizierten Passwörtern vorgegeben werden. Beachten Sie bitte, dass in den einzelnen Applikationen u.U. kein entsprechender Hinweis bzgl. der Syntax erscheint.

password.regexp

Beispiel:

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\S+$).{8,}$

^                 # Beginn des Passwortes
(?=.*[0-9])       # min. eine Zahl
(?=.*[a-z])       # mind. ein kleingeschriebener Buchstabe
(?=.*[A-Z])       # mind. ein großgeschriebener Buchstabe
(?=.*[@#$%^&+=])  # mind. eins dieser Sonderzeichen "@#$%^&+="
(?=\S+$)          # Leerzeichen sind nicht erlaubt
.{8,}             # mind. 8 Zeichen
$                 # Ende des Passwortes

Algorithmus zur Verschlüsselung

Hier kann der verwendete Algorithmus zur Laufzeit angepasst werden. Loggt sich ein Nutzer erfolgreich ein, so wird das Passwort automatisch mit den hier gemachten aktuellen Setzung neu generiert und in der Datenbank gespeichert (Default: PBKDF2: https://de.wikipedia.org/wiki/PBKDF2).

  • PBKDF2
  • scrypt
  • bcrypt
  • md5
  • sha (1, 256, 384, 512)
  • unixcrypt
password.algorithm

Steuerung des Algorithmus zur der Verschlüsselung

Je nach Algorithmus kann u.U. noch Einfluss auf die Generierung von Passwörtern genommen werden. Drei Algorithmen erlauben hier feinere Anpassungen und haben eigene Attribute zur Steurerung.

password.bcrypt.params
Default: "{cost=10}"
password.scrypt.params
Default: "{N=16384,r=8,p=1}", auf virtuellen Servern u.U. wie folgt zu reduzieren: "{N=1024, r=1, p=1}"
password.pbkdf2.params
Default: "{iterations=1000,keyLength=512}"

sitepark.conf

IES_OPTS

Java Optionen die mit -D angegeben werden

Chunked transfer encoding für die Kommunikation vom IES z.b. zum IES-Webnode deaktivieren. Dies ist in der Regel nur dann notwendig, wenn die Kommunikation über einen Proxy läuft und dieser Chunked transfer encoding via POST nicht unterstütz (sehr alte Proxies)

com.sitepark.net.HttpClient.disableChunked=true

Deaktivieren des nice-Mode für ImageMagick. Die Bildberechnung läuft standardmäßig im nice-Level 19 (niedrigste Priorität) um bei z.B. Massenimporten mit Bildberechnung die redaktionelle Arbeit nicht zu behindern. Mit dem Setzen der Priorität von 0 kann der Nice-Moduls deaktiviert werden. Bei Angabe eines anderen Wertes wird dieser für den nice-Aufruf übernommen.

com.sitepark.imgfile.imagemagick.command.Command.priority=0

Mail-Server Konfiguration

Der Mail-Server wird anders als die IES-Konfigurationen global für den JBoss (in dem der IES läuft) konfiguriert. Wir empfehlen hier die Einstellungen mit einem lokalen Mail-Server zu belassen und eine entsprechende Weiterleitung des SMTP-Dienstes zu konfigurieren. Details hierzu finden Sie hier.

Möchten Sie dennoch, dass Emails des IES direkt an einen externen Mailserver gesendet werden, so ist dies über Anpassungen an folgender Konfigurationsdatei möglich:

$SITEPARK_HOME/jboss/server/default/deploy/mail-service.xml

Hier können Sie die gewünschten Parameter anpassen. I.d.R. ist lediglich der Wert für mail.smtp.host zu ändern. Ein IES-Neustart ist bei Änderungen erforderlich.