Skip to content

Releasenotes imperia 10.3#

Der ehemalige Außenminister Sigmar Gabriel wusste "Wir müssen raus ins Leben; da, wo es laut ist; da, wo es brodelt; da wo es manchmal riecht, gelegentlich auch stinkt." Bei imperia CMS ist das der zentral Bearbeiten-Schritt, den jeder Kunde für sich selbst gestaltet. Durch diese Offenheit bietet imperia CMS ein hohes Maß an Flexibilität und Lösungen nach Maß. Die Kehrseite dieser Flexibilität zeigt sich in der Verwendung veralteter Technologie und schlechter Benutzerführung. Dieser Dynamik wollen wir uns – wo wir können – aktiv entgegenstellen und zeigen, wie es besser gehen kann. Aus diesem Grund stellt die imperia Entwicklung den Bearbeiten-Modus in das Zentrum ihrer Aufmerksamkeit. Dieser Schwerpunkt zeigt sich bereits in diesem Release an Funktionen, wie dem Drag-And-Drop-Upload von Bildern im Bearbeiten-Modus oder dem Fokuspunkt.

Inhalt
Fokuspunkt
Kleine Änderungen im imperia Button-Design
Drag-And-Drop im Hochladen-Menü
Drag-And-Drop im Bearbeiten-Modus
Rubrikeninformationen auf dem Live-System
Neues Add-On: Pixelboxx-Connector
Application Security Monitoring (ASM)
Das Changelog im Einzelnen

Fokuspunkt#

Automatische Bildzuschnitte waren schon immer eine Stärke von imperia CMS. Doch wir haben die Latte noch etwas höher gesetzt. Nun haben die Redakteure die Möglichkeit, einen Fokuspunkt in einem Bild zu setzen, damit alle Zuschnitte perfekt gelingen. Dieses Feature ist sehr nützlich, wenn Sie dasselbe Bild in mehreren Zuschnitten benötigen. Z.B. im Querformat als Aufmacher und dann noch einmal im Quadrat in einer Übersichtsseite. Außerdem werden in responsiven Webseiten immer verschiedene Zuschnitte desselben Bildes benötigt: Auf dem Smartphone werden eher quadratische Formate benötigt, während auf dem Desktop eher Querformate, wie 16:9 oder 21:9, dominieren.

Und so läuft es ab:

Schritt 1: Bild auswählen#

Klicken Sie auf den Bildplatzhalter oder den Assets-Link, um das Media-Asset-Management zu öffnen.

Bild auswählen

Schritt 2: Fokuspunkt-Dialog öffnen#

Wählen Sie Ihr Bild aus und klicken Sie in der Zeile auf den Button "Fokuspunkt".

Fokuspunkt oeffnen

Schritt 3: automatische Zuschnitte evaluieren#

Im Ansichtsfenster rechts sehen Sie, wie imperia CMS die Zuschnitte generieren würde. Sie sehen, dass die Positionierung des Bildschwerpunktes nicht optimal ist. Insbesondere für querformatige Bilder ist der Zuschnitt nicht passend.

automatischer Fokuspunkt

Schritt 4: Fokuspunkt setzten#

Positionieren Sie nun den Fokuspunkt im Bearbeitungsfenster auf der linken Seite. In der Vorschau auf der rechten Seite können Sie direkt sehen, wie sich die Positionierung des Fokuspunktes auf die einzelnen Bildformate auswirkt. Experimentieren Sie ein wenig bis der beste Kompromiss für alle Varianten gefunden ist. Klicken Sie auf "Speichern & Weiter", um die Änderungen zu bestätigen.

Fokuspunkt setzen

Schritt 5: Bild einfügen#

Durch einen Doppelklick auf die Miniaturansicht des Bildes im Media-Asset-Management wird das Teaserbild für ihren Artikel neu generiert. Bild einfuegen

Schritt 6: Ergebnis#

Wie Sie hier sehen können, wurde das Bild für das Querformat perfekt zugeschnitten. Auch wenn es sich dabei nicht um dasselbe Format, wie in der Vorschau handelt. Die Vorschau zeigt extreme Ausprägungen von Hoch- und Querformaten. Für moderatere Formate – wie in diesem Beispiel – passt es dann erst recht.

Ergebnis

Die Funktion "Fokuspunkt" ist out-of-the box einsetzbar und erfordert keine Konfiguration.

Kleine Änderungen im imperia Button-Design#

In der neuen imperia 10.3 Version wurden kleine Änderung im Design der Benutzeroberfläche vorgenommen. Die sekundären Aktionen, die vorher als Links gekennzeichnet waren, werden nun an als Buttons dargestellt. Durch dieses Redesign wird klarer kommuniziert, dass es sich bei den Buttons um eine ausführbare Aktion handelt.

imperia 10.2:

Link

imperia 10.3:

Button

Drag-And-Drop im Hochladen-Menü#

Seit imperia 9 können Assets im MAM per Drag-AND-Drop hochgeladen werden, indem die Assets einfach in die entsprechende Rubrik gezogen werden. Leider wird dieser Funktion bisher kaum angenommen, da nicht ersichtlich ist, dass diese Möglichkeit existiert. Aus diesem Grund haben wir Drag-And-Drop nun auch direkt im Hochladen-Menü hinzugefügt. Sie erreichen es im MAM unter Datei -> Hochladen.

hochladen

Drag-And-Drop im Bearbeiten-Modus#

Noch besser: Auch im Bearbeiten-Modus könenn un Bilder direkt per Drag-AND-Drop hochgeladen werden. Dabei wird die bestehende API, der sogenannte Grafiker-Upload genutzt. Über das Template können Sie mittels der Variable "quickupload" eine Standard-Rubrik hinterlegen, in die neue Bilder hochgeladen werden. Für weitere Informationen lesen Sie in der Entwicklerdoku das Kapitel Adjusting the MAM Invocation.

Bearbeiten-Modus

Rubrikeninformationen auf dem Live-System#

Als imperia Entwickler ist es in vielen Fällen sinnvoll, Informationen in den Rubriken abzulegen. Sei es um die Navigationsgenerierung zu steuern, Mehrsprachigkeit zu konfigurieren oder SiteActives zu lenken. Diese Informationen standen bisher jedoch nur auf dem Entwicklungssystem zur Verfügung und mussten über Umwege auf das Produktivsystem übertragen werden. Jetzt können Rubrikenfelder direkt abgefragt werden. Das erleichtert die Programmierung an vielen Stellen und imperia Dokumente werden schlanker.

Rubrikeninfos auslesen mit READCAT#

Mit dem Befehl READCAT können Sie mittels SiteActives die Rubrikeninformationen auslesen. In der Vergangenheit musste man diese Informationen häufig in jedes einzelne imperia Dokument übertragen, um sie auch auf dem Livesystem nutzen zu können. Diese Methode war jedoch nicht immer zu 100% zuverlässig, wenn z.B. das verwendete Dokument die neusten Informationen noch nicht enthält. Nutzen Sie READCAT, um Steuerungsvariablen für die Navigationserzeugung, für Mehrsprachigkeit und projektspezifische Variablen auszulesen.

Als Beispiel soll folgender Rubrikenbaum dienen:

Plätze (ID 810)
    Bildungseinrichtungen (ID 810/812)
        Kindergärten & Kitas (ID 810/812/930)
        Schulen (ID 810/812/931)
        Hochschulen (ID 810/812/932)
    Parks & Spielplätze (ID 810/830)
    Stadtbezirke & Viertel (ID 810/900)
    Büchereien (ID 810/970)
    Friedhöfe (ID 810/1010)

Das Verhalten des Befehls READCAT wird durch Parameter spezifiziert.

Rekursiv

Mit dem Parameter -1 werden alle Rubrikeninformationen unterhalb der Rubrik "Plätze" rekursiv ausgelesen.

imperia-Syntax: READCAT = "/810~-1"

Perl-Syntax: ireadcat("/810", -1);

View-Syntax: ireadcat(node_id=>'/810', depth=> -1) ireadcathash(node_id=>'/810', depth=> -1)

Ergebnis:

Bildungseinrichtungen (ID 810/812)
Kindergärten & Kitas (ID 810/812/930)
Schulen (ID 810/812/931)
Hochschulen (ID 810/812/932)
Parks & Spielplätze (ID 810/830)
Stadtbezirke & Viertel (ID 810/900)
Büchereien (ID 810/970)
Friedhöfe (ID 810/1010)

erste Ebene

Mit dem Parameter 1 (2,3,4, ...) werden die Rubrikeninformationen in der ersten (zweiten, dritten, vierten, ...) Ebene unterhalb "Plätze" ausgelesen.

imperia-Syntax: READCAT = "/810~1"

Perl-Syntax: ireadcat("/810", 1);

View-Syntax: ireadcat(node_id=>'/16', depth=> 1)

Ergebnis:

Bildungseinrichtungen (ID 810/812)
Parks & Spielplätze (ID 810/830)
Stadtbezirke & Viertel (ID 810/900)
Büchereien (ID 810/970)
Friedhöfe (ID 810/1010)

aktuelle Rubrik + erste Ebene

Mit dem Parameter 1,1 werden die Rubrikeninformationen in der ersten Ebene unterhalb "Plätze" sowie die Rubrik selbst ausgelesen.

imperia-Syntax: READCAT = "/810~1~1"

Perl-Syntax: ireadcat("/810", 1, 1);

View-Syntax ireadcat(node_id=>'/16', depth=> 1, include_current_category => 1)

Ergebnis:

Plätze (ID 810)
Bildungseinrichtungen (ID 810/812)
Parks & Spielplätze (ID 810/830)
Stadtbezirke & Viertel (ID 810/900)
Büchereien (ID 810/970)
Friedhöfe (ID 810/1010)

Genau eine Rubrik

Mit dem Parameter 0 werden nur die Rubrikeninformationen der Rubrik "Plätze" ausgelesen.

imperia-Syntax: READCAT = "/810~0"

Perl-Syntax: ireadcat("/810", 0);

View-Syntax ireadcat(node_id=>'/16', depth=> 0)

Ergebnis:

Plätze (ID 810)

READCATDOCS ist das bessere READDIR#

Der Befehl READDIR ist der zentrale Befehl in der Entwicklung von SiteActives. Mit diesem Befehl lassen sich die Metainformationen der imperia Dokumente innerhalb eines Dateipfads ausgelesen. Doch dieses Vorgehen enthält eine Unschärfe, da es meist voraussetzt, dass die Pfadstruktur grob mit der Navigationsstruktur übereinstimmt. Diese Heuristik ist heute jedoch nicht mehr zu gebrauchen, da Seiten aus unterschiedlichen Rubriken aus SEO-Gründen als sprechende URLs möglichst auf die erste Pfad-Ebene gelegt werden. Mit READCATDOCS steht nun auch die Rubrikenstruktur zur Verarbeitung zur Verfügung.

Bildungseinrichtungen (ID 810/812)
    Übersichtsseite Bildungseinrichtungen
    Kindergärten & Kitas (ID 810/812/930)
        Waldkindergarten Schauen
        katholische Kita "Domspatzen"
    Schulen (ID 810/812/931)
        Gymnasien (ID 810/812/970)
            Albertus-Magnus-Gymnasium
            Gymnasium Schauen
        Gesamtschulen (ID 810/812/971)
            Geschwister-Scholl-Gesamtschule
        Hauptschulen (ID 810/812/972)
            Humbolt-Hauptschule
            Albert-Schweitzer-Hauptschule
    Hochschulen (ID 810/812/932)
        Fachhochschule Schauen
        Universität Schauen

Rekursiv

Mit dem Parameter -1 werden die Metainformationen aller imperia Dokumente unterhalb der Rubrik "Bildungseinrichtungen" rekursiv ausgelesen.

imperia-Syntax: READCATDOCS = "/810/812~-1"

Perl-Syntax: ireadcatdocs("/810/812", -1);

View-Syntax: ireadcatdocs(node_id=>'/810/812', depth=> -1)

Ergebnis:

    Übersichtsseite Bildungseinrichtungen
    Waldkindergarten Schauen
    katholische Kita "Domspatzen"
    Albertus-Magnus-Gymnasium
    Gymnasium Schauen
    Geschwister-Scholl-Gesamtschule
    Humbolt-Hauptschule
    Albert-Schweitzer-Hauptschule
    Fachhochschule Schauen
    Universität Schauen

aktuelle Rubrik + erste Ebene

Mit dem Parameter 1 werden alle imperia Dokumente der Rubrik "Bildungseinrichtungen" sowie der Ebene darunter ausgelesen.

imperia-Syntax: READCATDOCS = "/810/812~1"

Perl-Syntax: ireadcatdocs("/810/812", 1);

View-Syntax: ireadcatdocs(node_id=>'/810/812', depth=> 1)

Übersichtsseite Bildungseinrichtungen
Waldkindergarten Schauen
katholische Kita "Domspatzen"
Fachhochschule Schauen
Universität Schauen

Genau eine Rubrik

Mit dem Parameter 0 werden nur die imperia Dokumente der Rubrik "Bildungseinrichtungen" ausgelesen.

imperia-Syntax: READCATDOCS = "/810/812~0"

Perl-Syntax: ireadcatdocs("/810/812", 0);

View-Syntax: ireadcatdocs(node_id=>'/810/812', depth=> 0)

Ergebnis:

Übersichtsseite Bildungseinrichtungen

Ergebnislisten bearbeiten#

Mit READCATDOCS bzw. ireadcatdocs haben Sie nun diejenigen Rubriken ausgewählt, deren Dokumente in dem SiteActive ausgewertet werden sollen. Jetzt soll diese Liste aber noch nach Datum sortiert und auf nur 10 Einträge limitiert werden. Für diesen Zweck gibt es bereits die Funktionen SORT und LIMIT HITS, die auch bei dem Befehl READDIR bzw. ireaddir Anwendung finden.

Die Ergebnisliste aus READCAT lässt sich hingegen nicht bearbeiten und entsprechen der Baumstruktur der Rubriken. Wenn eine Rubrik auf dem Entwicklungssystem verschoben wird, dann ändert sich die Ergebnisliste entsprechend ab – sowohl auf dem Entwicklungssystem als auch auf allen Livesystemen.

Rubrikeninformationen schreiben#

Die Metainformationen der mittels READCATDOCS gefundenen Dokumente werden wie bisher mit den YY-Variabeln ausgegeben. Für die Ausgabe der Rubrikeninformationen werden neue Variablen eingeführt.

imperia-Syntax:

In der Funktion FOREACH FOUND kann nun die neue Variable LSECTION eingesetzt werden.

  • Rubrikenname ausgeben: <!--LSECTION:name-->
  • Node-ID ausgeben: <!--LSECTION:__imperia_node_id-->
  • eigene Metainfo-Variable ausgeben: <!--LSECTION:meine_variable-->

Weitere Informationen zu der FOREACH-FOUND-Funktion finden Sie in der Entwickler-Dokumentation.

Außerhalb der FOREACH-FOUND-Funktion können Rubriken explizit ausgewählt werden, indem die NodeID an LSECTION übergeben wird.

<!--LSECTION(/16):__imperia_node_id-->

Beispiel im SiteActive-Kontext:

<IMPERIA>
CLEARLIST
READCATDOCS = "/810~-1"
SORT LATEST FIRST
FOREACH FOUND {
<a href="<!--YY-directory-->/<!--YY-filename-->"><!--LSECTION:name--> <!--YY-title--></a><br />
}
</IMPERIA>
<IMPERIA>
CLEARLIST
READCAT = "/810~-1"
FOREACH FOUND {
<!--LSECTION:name--> <br />
}
</IMPERIA>

Perl Syntax:

In der Perlsyntax gibt es nun als Alternative zur Variable $FILE_META_INFO, die auf dem Pfad basiert, die Variable $FILE_CAT_META_INFO, die auf der Rubrikenstruktur basiert. Diese Variable enthält Standard-Metainformationen, wie directory, filename, __imperia_node_id und title sowie projektspezifische Metainfo-Variablen.

Für die Ausgabe der Rubrikeninformationen steht die Variable $FILE_CAT_NODE_INFO bereit. Diese Variable enthält Standard-Rubrikeninformationen, wie name, __imperia_node_id, linguas oder __ip_skip_nav. Darüber hinaus können hier projektspezifische Rubrikeninformationen definiert sein.

Beispiel im Perl SiteActive-Kontext:

<table border="0" cellspacing="0" cellpadding="0">
    <IMPERIA lang=perl>
    clearlist();
    filemask('.*\.htm[lsx]?$');
    ireadcatdocs ('/6', '-1');
    sort_by_meta('__imperia_node_id');
    foreach my $file (@FILELIST) {
        my $directory = $FILE_META_INFO{$file}->getValues('directory');
        my $filename = $FILE_META_INFO{$file}->getValues('filename');
        my $title = $FILE_META_INFO{$file}->getValues('title');
        my $teaser = $FILE_META_INFO{$file}->getValues('teaser');
        my $cat = $FILE_CAT_NODE_INFO{$file}{name};
        print <<EOF;
        <tr>
            <td><a href="$directory/$filename"><b>$title $cat</b></a></td>
        </tr>
        <tr>
            <td>$teaser</td>
        </tr>
        <tr>
        <td> </td>
        </tr>
        EOF
    }
    </IMPERIA>
</table>
<table border="0" cellspacing="0" cellpadding="0">
    <IMPERIA lang=perl>
        clearlist();
        filemask('.*\.htm[lsx]?$');
        ireadcat ('/6', '-1');
            foreach my $cat_id (@CATLIST) {
                my $cat1 = $FILE_CAT_NODE_INFO{$cat_id}{name};
                print <<EOF;
                <tr>
                    <td><a href="$directory/$filename"><b>$title $cat1</b></a></td>
                </tr>
                <tr>
                    <td>$teaser</td>
                </tr>
                <tr>
                    <td> </td>
                </tr>
                EOF
            }
    </IMPERIA>
</table>

Hinweis

Die Rubrikeninformationen werden standardmäßig inkrementell mit den Dokumenten auf das Zielsystem übertragen. Benötigen Sie nach dem Update diese Informationen komplett auf den Zielsystemen, müssen Sie Ihren Auftritt mit dem Template-Reparser erneut frei schalten.

Neues Add-On: Pixelboxx-Connector#

Mit dem Pixelboxx-Connector können Sie aus dem Bearbeiten-Modus heraus auf Ihr Pixelboxx-DAM zugreifen und Bilder direkt einfügen. Die Verbindung erfolgt über die Intermedia-Schnittstelle.

Template-Entwicklung#

Im Template wird die Anbindung durch das PI-Modul "pixelboxx" realisiert. Das Modul rendert den bekannten Bild-Platzhalter im Bearbeiten-Modus. Sie binden es folgendermaßen ein:

<?imperia pixelboxx
        id: pix4
        width: 140px
        copy: headline-alt_attr, xsize-x, ysize-y, filesize-f
?>

id: Da Sie in einem Template mehrere Instanzen einsetzen können, müssen Sie hier eine ID vergeben.

width: Hier geben Sie die Breite des Bild-Platzhalters an.

copy: Über diese Variable geben Sie an, welche Metadaten Sie aus dem DAM übernehmen wollen.

Schnittstelle konfigurieren#

In der pixelboxx.conf müssen folgende Variablen hinterlegt sein.

edit view Pfad konfigurieren edit_view = /addons/pixelboxx/form/editmode.html (Optional eigenen View hinerlegen)

save view Pfad konfigurieren save_view = /addons/pixelboxx/form/savemode.html (Optional eigenen View hinterlegen)

API zur Übertragung der Bilder konfigurieren getImageData = Hier die URL zur getImageData API von Intermedia eintragen

API zur Suche nach Bildern konfigurieren findImage = Hier die URL zur findImage API von Intermedia eintragen

API zur Übertragung spezifischer Bildquellen konfigurieren getImage = Hier die URL zur getImage API von Intermedia eintragen

Tabellenspalten des Overlays im Editmode konfigurieren

tableLayout  =  [{ data: "doi", render: function render_image (data,type,full,meta) { return '<img src="Hier die URL zur getImage API von Intermedia eintragen' + data + '" style="max-width:200px; max-height:100px;padding:10px">'; }, width: "200px", }, { data: "headline", render: function render_image (data,type,full,meta) { if (data.length > 30) {  return '<span title="' + data + '">' +data.substr(0,26) + '... </span>'; } return data; }, }, { data: "filesize" }]

Bilder aus der Pixelboxx einfügen#

Das PI-Modul "Pixelboxx" rendert im Editmode einen Bild-Platzhalter. Durch einen Klick auf Platzhalter öffnet sich ein Dialog, in dem der Benutzer ein Bild im Pixelboxx-DAM suchen und auswählen kann.

Application Security Monitoring (ASM)#

Als Systemadministrator haben Sie die Möglichkeit, jegliche User-Interaktionen (Events) in imperia zu überwachen.

Das Application Security Monitoring dient dazu die User-Interaktionen Format in ein Logfile zu schreiben. Hierfür stellen wir auch einen LEEF-Logger zur verfügung. Dieser kann von den Plug-ins benutzt werden um die Informationen in dem für QRADAR lesbaren LEEF-Format abzulegen.

Sie können Event-Plug-ins nutzen / programmieren, die als Einstiegspunkt dienen, um auf gewisse Events von Controllern reagieren zu können.
Bzw. wird über das Plug-in definiert, auf welche Events reagiert werden soll.

In der LEEF-Konfiguration wird definiert, welche event-unabhängigen Informationen bzw. Daten dem LEEF-Logger übergeben werden, der dann die Daten im LEEF-Format ins Log schreibt.

Events können zum Beispiel sein:

  • User X ändert Daten des Users Y.
  • Hermes wurde von User X gestartet.

Event-Plug-in#

Die Event-Plug-ins liegen unter site/modules/core/Dynamic/Router.

Folgende Informationen sollten im Plug-in enthalten sein:

  1. Package-Pfad angeben

    package Dynamic::Router::YourEventPlugin;
    
  2. Ihr Plugin sollte von der Klasse Imperia::Router::Plugin abgeleitet werden

    use base qw(Imperia::Router::Plugin);
    
  3. Die Controller auf welche das Plugin reagieren kann, müssen in

    getRegisteredController
    

    zurückgegeben werden.

    Beispiel Hermes-Aktivierung soll geloggt werden:

    sub getRegisteredController {
        my ($self) = @_;
    
        return ('Imperia::Controller::System::Hermes::Control');
    }
    
  4. Weitere Methoden

    filter
    

    Jeder Request an einen der oben angegebenen Controller wird der Methode Filter übergeben. Hier kann dann z.B. entschieden werden, welche Requests auf einen Controller geloggt werden sollen.
    Beispiel "Hermes-Aktivierung":

    sub filter {
        my ($self, $class, $imperia) = @_;
        my $file = 'site_hermes_unix.pl';
        if ($imperia->request->method eq 'GET') {
            $imperia->payload->{imperia}{__callback} = sub { 
                my $response = $imperia->response->{_content};
                if($response =~/Permission denied/){
                    $self->{logger}->logEvent({header_eventid => "change proc", 
                                                msg => "Access denied to $file",
                                                file => $file,
                                                $self->getUserInfo(),
                                            });
            } else {
                    $self->{logger}->logEvent({header_eventid => "change proc", 
                                                msg => "Process $file was changed",
                                                file => $file,
                                                $self->getUserInfo(),
                                            });
                }
        }
    }
    
  5. Nach dem Request.

In der Varaibale $imperia->payload->{imperia}{__callback} können Sie den Code hinterlegen der nach der Abarbeitung des Requests ausgeführt werden soll. In oberem Beispiel wird das Event in das Logfile geschrieben. Hier füllen Sie die Variablen (z.B.: Message) mit den entsprechenden Werten.

    $imperia->payload->{imperia}{__callback} = sub {
    $self->{logger}->logEvent({header_eventid => 'change proc',
                                msg => 'Process was changed',
                                file => $file,
                                $self->getUserInfo(),
                            });
    };
  1. Mithilfe von $self->getUserInfo() wird ermittelt, welcher User den Request ausgelöst hat.

  2. Mit $imperia->request->imperiaPathInfo können Sie, falls weitere Parameter vorhanden sind, ermitteln, ob es sich dabei um eine Löschung, ein Speichervorgang oder einen Patch gehandelt hat.


Beispiel "User wurde gelöscht":

    my ($command, $id) = $imperia->request->imperiaPathInfo;

    if($command eq 'delete' && $id) {
        do something ...
    }

Logdatei (LEEF-Datei)#

Die LEEF-Datei kann folgende Informationen ausspielen (je nachdem, welche Felder konfiguriert sind):

Mögliche Felder Beschreibung
Header-Informationen:
Zeitstempel Jeder Logeintrag muss mit einem Zeitstempel beginnen.
systemIP durch ein Leerzeichen getrennt folgt die IP Adresse des loggenden Systems
LEEF Format durch ein Leerzeichen getrennt folgt dann die feste Zeichenfolge "LEEF:1.0", die benötigt wird, um das Log-Format korrekt interpretieren zu können.
Vendor Durch ein Pipe Zeichen (|) getrennt folgt die Angabe des Herstellers, z.B. "Imperia"
ProduktName Durch ein Pi Jeder Request an einen der oben angegebenen Controller wird der Methode Filter übergeben. Hier kann dann z.B. entschieden werden, welche Requests auf einen Controller geloggt werden sollen. pe ,getrennt, folgt die Angabe der Applikation laut CMDB-Kürzel und durch ein weiteres Pipe Zeichen getrennt die Version der Applikation.
Durch ein Pipe getrennt, folgt die EventID, z.B. "account locked".
Danach folgt ein letztes Pipe und anschließend die eigentlichen Logmeldungen im Format "key=wert", siehe nachfolgende Parameter.
Parameter:
"cat=" enthält die passende Category, z.B. "auth" für "authentication".
"usrName=" enthält immer den ausführende User, d.h. der, der eine Aktion durchführt. Dazu gehören entsprechend auch "role=" und "grpName=".
"usrName2=" enthält immer der betroffene user/account. Dazu gehören entsprechend auch "role2=" und "grpName2=".
"file=" enthält eine betroffene Datei oder Prozess mit voller Pfadangabe.
"msg=" enthält die Beschreibung des Events.
"src=" enthält die Source IP Adresse, d.h. die IP des Systems, von welchem eine Aktion ausgeführt würde (z.B. die Client IP eines Users beim Login).
"dst=" enthält die Destination IP Adresse, d.h. die IP des Systems, auf welchem eine Aktion ausgeführt würde (z.B. die Server IP, auf des Systems, auf welchem sichder User angemeldet hat).
"srcPort=" enthält die Source Port, von welchem eine Aktion ausgeführt würde (z.B. die Port von welchem sich ein User angemeldet hat (i.d.R. > 1024) - optional.
"dstPort=" enthält die Destination Port, an welchem eine Aktion ausgeführt würde (z.B. den Port an welchem sich ein User angemeldet hat z.b. Port 22 tcp beim SSH Login).
"env=" enthält das Environment (V
"sev=" kann durch die Applikation eine "Severity" mitgegeben werden. Gültig sind Werte 0-10 (10 ist dabei der höchste Schweregrad) - optional.
"par1=" wird in einigen Sonderfällen benötigt (z.B. bei Umbenennung von Gruppen).
"par2=" kann bei Bedarf durch die Applikation genutzt werden.

Hinweis

Felder, die nicht zutreffen, bleiben leer, z.B. "file= ".

Für LEEF-Ereignisse muss die Zeichencodierung UTF-8 verwendet werden.


Konfiguration#

Die Konfigurationsdatei liegt als Sample unter site/config/leef.conf.sample und kann als Vorlage für die eigene Config genutzt werden. Benutzen Sie den LEEF-Logger müssen Sie eine angepasste Konfiguration verwenden.

Sie dient zur Konfiguration der Felder, die dort unter <base> liegen und deren Werte aus dem Plug-in gezogen werden (mögliche Felder siehe LEEF-Datei).

Zudem sind die Header-Daten, die in der LEEF-Datei am Anfang ausgegeben werden, ebenfalls dort festgelegt.

Unter logfilename lässt sich einstellen wo das leef.log gespeichert werden soll.

Damit im Syslog-Header die IPv4-Adresse des Host-Systems erscheint, können Sie diese in der Konfigurationsdatei unter header_systemIP eintragen.

Beispiel:

header_systemIP = 127.0.0.1

Unter header_format tragen Sie das entsprechende Leef-Format ein, welches Sie nutzen.

Beispiel:

header_format = LEEF:1.0

Eine Beispielkonfiguration könnte wie folgt aussehen:

    'logfilename = /tmp/leef.log
    <base>
        header_systemIP = 127.0.0.1
        header_format = LEEF:1.0
        header_vendor = pirobase imperia gmbh
        header_version = imperia CMS|10.3
        env = E
        cat = 
        usrName = 
        usrName2 = 
        file = 
        msg = 
        src = 
        dst = 
        srcPort = 
        dstPort = 
        sev = 
        par1 = 
        par2 = 
        role = 
        grpName = 
        role2 = 
        grpName2 = 
    </base>'

Die Felder mit dem Präfix header_bilden dabei den Syslog- und den LEEF-Header. Die Felder ohne dem Präfix bilden die vordefinierten oder kundenspezifischen Event-Attribute.

Changelog#

Neue Features#

  • ICMS-1273 Fokuspunkt. Perfekt in Szene gesetzt.
  • ICMS-811 Rubrikeninfos auf Live. Direkt von der Quelle.
  • ICMS-1458 Pixelboxx Addon.
  • ICMS-1442 MAM DND-Upload.
  • ICMS-1276 Direktupload von Bildern im Editmode.
  • ICMS-1488 Application Security Monitoring.

Verbesserungen#

  • ICMS-1481 Design von sekundären Aktions-Buttons geändert.
  • ICMS-1374 imperia Suche indiziert nun optional auch Terme, die mit Bindestrich zusammengesetzt sind.
  • ICMS-1365 Fallback-Icon des MAM-Containers im Bearbeiten-Modus ausgetauscht.
  • ICMS-1358 Schnelles Hinzufügen in Bildergalerien optimiert.
  • ICMS-1439 Update CK-Editor auf Version 4.8.

Fehlerkorrekturen#

  • ICMS-1479 required-Attribut verhindert das Verschieben in den nächsten Workflow-Step. gefixt.
  • ICMS-1469 Beim Hinzufügen neuer Module springt die Seite manchmal nicht an die richitge Stelle. gefixt.
  • ICMS-1466 Beim Hinzufügen einer neuen Rubrik wird die Elternrubrik nicht angezeigt. gefixt.
  • ICMS-1465 OCE-Login reagiert nicht, wenn die Systemvaribale AUTH_PLUGIN = basic gesetzt ist. gefixt.
  • ICMS-1450 Benutzerliste: Der Entfernen-Button wird im Chrome nicht angezeigt. gefixt.
  • ICMS-1444 Fehlende Beschreibungstexte von imperia Controllern ergänzt.
  • ICMS-1441 Fortschrittsanzeige endet nicht, wenn ein Fehler geworfen wird. gefixt.
  • ICMS-1440 Live-Preview lädt im Hintergrund, auch wenn dieser ausgeschaltet wurde. gefixt.
  • ICMS-1434 Rekursives Löschen von Rubriken unvollständig bzw. fehlerhaft. gefixt
  • ICMS-1396 Flexmodule im "Default"-View und AJAX-Ladeoption fehlerhaft. gefixt.
  • ICMS-1386 Live-Preview im Chrome fehlerhaft. gefixt.
  • ICMS-1447 Regex nicht korrekt escapt. gefixt.
  • ICMS-1445 Fortschrittsanzeige wird nicht korrekt skaliert. gefixt.
  • ICMS-1453 OCE-Buttons zeigen u.U. fehlerhafte Tooltips. gefixt.
  • ICMS-1463 Rubriken können nicht aus dem Dokumenten-Browser heraus gelöscht werden. gefixt.