Info der Session

Wertauflöser - Kurzfassung

Zweck: Gibt das "Session Information"-Objekt für die aktuelle Sitzung zurück.

images/download/attachments/91138138/image2022-2-28_16-23-24-version-1-modificationdate-1646061804291-api-v2.png

Der Info der Session-Wertauflöser gibt eine Entität des Typs "Session Information" zurück, in dem Informationen zur aktuellen Sitzung bzw. einem durch die Ausführen als-Ereignisaktion temporär veränderten Anmeldekontext enthalten sind.

HINWEIS◄ Über das Ereignis "Zusätzliche Sitzungsdaten initialisieren" (s. Anmeldung (Ereignisse)) kann die Map im Feld additionalData mit spezifischen zusätzlichen Inhalten für die Sitzung angereichert werden.
Innerhalb einer Sitzung kann auf das "Session Information"-Objekt nur lesend zugegriffen werden.

Die folgende Tabelle gibt den Inhalt des "Session Information"-Objekts nach Themenbereichen gegliedert wieder. Dabei sind auch Informationen enthalten, auf die über andere Wertauflöser der Kategorie Sitzungsbasiert (Wertauflöser) direkt zugegriffen werden kann.

Zusammen mit den unmittelbaren Feldinhalten listet die Tabelle (mit hellblauer Schattierung) auch Inhalte auf, die unter vordefinierten Schlüsseln in einer Map für "Zusätzliche Sitzungsdaten" (im Feld additionalData) zu finden sind.


Betreff

Feldname / Map[ Schlüssel ]

Datentyp

Inhalt

Entität

Session Information

id
Long

Interne ID des "Session Information"-Objekts

formal vorhanden aber nur mit Standardwert belegt: created (null), creatorId (0), ownerId (0), partialLoaded (false)

Anmeldekontext

Temporär veränderlich durch Ausführen als-Ereignisaktion:

Benutzer

user

"Schnittstelle > Benutzer"

Benutzer der Session; abhängig vom Typ der Sitzung ein Benutzer- oder Gastbenutzerkonto (s. Benutzer, Gastbenutzer)

Firma

currentOwner

"Schnittstelle > Besitzer"

Firma der Session; ein Firmenkonto (s. Firmen)

additionalData[ parentCopmanies ]
Long[]

Liste der IDs aller der Firma der Session direkt oder indirekt übergeordneten Firmen

Rolle



currentRole

"Schnittstelle > Rollen"

Rolle der Session (s. Rollen)

permissionTree

"Erlaubnisbaum"

Berechtigungen der Rolle der Session als Baumstruktur

additionalData[ parentRoles ]
Long[]

Liste der IDs aller der Rolle der Session direkt oder indirekt übergeordneten Rollen

Nicht beeinflussbar durch die Ausführen als-Ereignisaktion (Aktualisierung nur beim Anmelden einer Sitzung):

Sprache

locale
String

Aktuelle Sprache

Zeitzone
(für Gastbenutzer nicht anwendbar)

additionalData[ userTimeZone ]
String

Name der in der Sitzung anwendbaren "Default Zeitzone" (defaultTimeZone), laut angemeldetem Benutzerkonto oder Firmenkonto:

  • Definieren beide Konten eine unterschiedliche "Default Zeitzone", hat die Angabe im Benutzerkonto Vorrang.

  • Definiert keines der beiden Konten eine "Default Zeitzone", dann greift im System effektiv die Standard-Zeitzone des Servers. Als userTimeZone wird allerdings "kein Wert" (null) angegeben.

Textbausteine
(für Gastbenutzer nicht anwendbar)

Diese Textbausteine wurden für den ursprünglichen Client-Typ FLEX eingeführt.
Für den ab Version 4 von Lobster Data Platform / Orchestration maßgeblichen Client-Typ HTML5_DESKTOP sind sie nicht relevant, können aber weiter genutzt werden.

additionalData[ welcomeText ]

String

Verkettung der folgenden Felder aus der Adresse des angemeldeten Benutzerkontos (user.address) getrennt durch Leerzeichen:

  • Anrede (salutation)

  • Name 1 (name1)

  • Name 2 (name2)

additionalData[ welcomeTooltip ]

String

Verkettung von Feldern aus dem tatsächlichen Anmeldekontext (Benutzer, Rolle, Firma) nach dem folgende Schema:
{user.address.name1} {user.address.name2} ({user.id})
{currentRole.roleName}
{currentOwner.address.name1} ({currentOwner.id})

Informationen zum Client/Browser

Client
&
Browser

clientType
String

"Client-Typ" (s. Aktive Benutzer); meistens: HTML5_DESKTOP

dmzInfo
String

IP-Adresse der DMZ

hostInfo
String

IP-Adresse des Clients

userAgentName
String

Browser-Kennung

userAgentVersion
String

Browser-Versionskennung

additionalData[ $client-id$ ]

String

ID des Client-Endpunkts

additionalData[ isMobile ]

Boolean

Kennzeichen für "mobile" Sitzung (s. Mobiles Endgerät?)

Informationen zur Sitzung

Sitzung

sessionToken
String

Session Token (eindeutig für die Sitzung)

startTime
Date

Startzeitpunkt der aktuellen Sitzung

lastAccess
Date

"Letzter Kontakt" zum Server (s. Aktive Benutzer)

lastActivity
Date

"Letzte Aktivität" der Sitzung auf dem Server (s. Aktive Benutzer)

safeMode
Boolean

Kennzeichen für Abgesicherter Modus (safeMode)

additionalData[ authHandler ]

String

Name der spezifischen Klasse für den Login-Typ
(Benutzer-Login, Gastbenutzer-Login oder Portal-Login)

additionalData[ serverURL ]

String

Basis-URL für den Aufruf der Sitzung (Domäne)

Zusätzliche Sitzungsdaten

(s. Details oben mit blauer Schattierung)

additionalData
Map

Map mit "Zusätzlichen Sitzungsdaten", die automatisch vom System oder vor Beginn der eigentlichen Sitzung über das Ereignis "Zusätzliche Sitzungsdaten initialisieren" bereitgestellt werden.

Konfiguration

Der Info der Session-Wertauflöser verwendet keine Parameter und ignoriert den Eingabewert.

Beispiel

Als Reaktion auf ein bestimmtes Eigenes Aktionsevent (XF_SESSION_DETAILS) soll eine Meldung mit wichtigen Informationen zur aktuellen Sitzung angezeigt werden, sofern ein regulärer Benutzer (s. Benutzer) und nicht etwa ein Gastbenutzer (s. Gastbenutzer) angemeldet ist.

Laufzeitbeispiel:

Im Ribbon-Menü "Verwaltung/Datenkontext" wird im Kontext ausgewählter Views ein ein Button "Session Information" hinzugefügt. Dieser dient dazu, das Eigene Aktionsevent XF_SESSION_DETAILS "auf Bestellung" auszulösen.

Es kann aber auch durch andere Ereignisse (z. B. bei "Client angemeldet", s. Anmeldung (Ereignisse)) oder innerhalb eines Workflows über die Eigenes Aktionsevent auslösen (Aktion) automatisch ausgelöst werden.

Rechts unten ist ein Beispiel für die formatierte Ausgabe konkreter Daten aus dem "Session Information"-Objekt zu sehen. Angezeigt werden hier:

  • CLIENT: Client-Typ

  • BROWSER: Typ und Version des verwendeten Browsers

  • SITE: zur Anmeldung der Sitzung verwendete URL

  • SESSION: interne Kennungen für die Sitzung

  • STARTED: Zeitpunkt der Anmeldung

  • USER: Benutzername und ID des anwendbaren Benutzerkontos

  • ROLE: Rollenname und ID der anwendbaren Rolle

  • COMPANY: "Name 1" aus der Adresse der anwendbaren Firma

HINWEIS◄ USER, ROLE und COMPANY können innerhalb eines Workflows von der tatsächlichen Sitzung abweichen, falls über die Ausführen als-Ereignisaktion ein temporär abweichender Anmeldekontext definiert wird.

images/download/attachments/91138138/image2022-3-3_10-9-23-version-1-modificationdate-1646298563566-api-v2.png

images/download/attachments/91138138/image2022-3-3_10-25-42-version-1-modificationdate-1646299542520-api-v2.png

Konfiguration:

Ein Eigenes Aktionsevent XF_SESSION_DETAILS wird angelegt und als Auslösendes Ereignis der rechts abgebildeten Ereignisbehandlung zugewiesen.

Die Prüfende Regel soll sicherstellen, dass die Anzeige der "Session Details" nur ausgeführt wird, wenn ein "vollwertiger" Benutzer (und nicht etwa ein Gastbenutzer) angemeldet ist.

Die Meldung soll auch dann nicht erscheinen, falls innerhalb einer Gastbenutzer-Sitzung das Ereignis XF_SESSION_DETAILS durch einen Workflow ausgelöst wird, in dem der Benutzer der Session durch eine Ausführen als temporär verändert wurde. Deshalb darf sich die Regel nicht auf den Benutzer der Session bzw. das Feld user im Rückgabewert von Info der Session beziehen.

Hier wird stattdessen innerhalb einer Objekt-Feld-Regel über einen Objekt-Feld-Wertauflöser der Wert zum Schlüssel authHandler in der Map gelesen, die die Info der Session im Feld additionalData bereitstellt. Dieser verweist genau dann auf den vollständigen Namen der Klasse UserAuthenticationHandler (s. statischer Text rechts im Bild), wenn die Sitzung auf ein "Benutzer-Login" zurückgeht. Die Prüfende Regel wird also nicht bestanden, falls ein "Gastbenutzer-Login" (per GuestUserAuthenticationHandler) oder ein "Portal-Login" (per PortalAuthenticationHandler) vorliegt.

images/download/attachments/91138138/image2022-3-3_10-26-57-version-1-modificationdate-1646299617898-api-v2.png

Als Aktion bei bestandener Regel wird hier eine Hinweis anzeigen (Popup)-Ereignisaktion konfiguriert:

  • Als Typ wurde hier "Alert" (Hinweisbox) ausgewählt, damit die Meldung für unbestimmte Zeit angezeigt wird und vom Benutzer per Klick auch "OK" quittiert werden kann. Außerdem kann der Anzeigetext im "Alert" bei Bedarf ausgewählt und in die Zwischenablage des Betriebssystems kopiert werden. Das soll hier - z. B. zum Versenden der angezeigten Daten in eine E-Mail an den Support - ausdrücklich möglich sein.

  • Den Titel für den "Alert" liefert hier der Auslösendes Ereignis-Wertauflöser.

  • In der Meldung liefert der Info der Session-Wertauflöser das "Session Information"-Objekt, das alle auszugebenden Daten enthält. Die Struktur der Meldung kann daher recht einfach über den Vorlage-Wertauflöser definiert werden. Dieser interpretiert das als Eingabe vorliegende core:SessionInformation-Objekt als "Druckobjekt", dessen Daten hier über XPath-Ausdrücke in Verbindung mit Literalen aufbereitet werden.

HINWEIS◄ Im Beispiel verdeutlicht der XPath-Ausdruck für den Wert der "SITE", wie der Zugriff auf einen Wert der additionalData-Map per XPath (hier über den Schlüssel serverURL) funktioniert.

Anstelle des Vorlage-Wertauflösers könnte hier auch eine Textverkettung eingesetzt werden, die Schritt für Schritt Feldwerte aus dem "Session Information"-Objekt über Objekt-Feld-Wertauflöser mit statischen Texten zusammensetzt. Dabei ist zu beachten, dass die Namen der Felder (s. a. Tabelle oben) in den meisten Fällen, aber nicht immer komplett mit den korrespondierenden Element- oder Attributnamen in der XML-Struktur des Objekts übereinstimmen. Dem XPath-Ausdruck {@token} entspräche im Beispiel etwa ein Zugriff auf das Feld sessionToken des Objekts.

images/download/attachments/91138138/image2022-3-3_10-46-27-version-1-modificationdate-1646300787152-api-v2.png