graulich
I'm new here

FSUserPrincipal / UserDTO.getRealname liefert in Preview und WebEdit immer SYSTEM

Hallo zusammen,

wir nutzen in einem unserer Projekte eine globale WebApp in der wir uns aus der Preview / Webedit heraus via Ticket anmelden:

#global.getUserService().getConnection().createTicket(true)

Jedoch liefert Session -> UserPrincipal -> UserDTO.getRealname immer "SYSTEM".

Wie kommt man an den tatsächlich eingeloggten User, bzw. kann es sein, dass ein Login via Ticket nicht zu demselben User einloggt der schon in der Preview/Webedit eingeloggt ist - obwohl das Login-Ticket in der Preview erstellt wurde?

Beste Grüße

Dominic Graulich

0 Kudos
4 Replies
Peter_Jodeleit
Crownpeak employee

Die Vorschau-Erzeugung läuft immer unter einem internen System-Benutzer. Für deinen Anwendungs-Fall kannst du z.B. DynamicPersonalization benutzen.

Peter
0 Kudos

Hallo Peter,

die globale Webapp (über ein Modul deployt) befindet sich auf dem Internal-Jetty auf dem auch die Preview läuft.

In der Preview bekomme ich folgende Meldung zu nachfolgend aufgeführtem Code:

screenshot.png

Also bin ich hier in der Preview anscheinend nicht mit dem SYSTEM User angemeldet.

Der Code dazu:

#GLOBAL.EDITOR: $CMS_VALUE(#global.gca("editor"))$<br />

<%

          javax.security.auth.Subject subject = (javax.security.auth.Subject) request.getSession().getAttribute("subject");

    de.espirit.firstspirit.access.auth.FSUserPrincipal userPrincipal = (de.espirit.firstspirit.access.auth.FSUserPrincipal) subject.getPrincipals().toArray()[0];

%>

SESSION USER: <%=userPrincipal.getUser().getRealname()%><br />

Rufe ich eine solche Test.jsp in der globalen Webapp auf, an der ich mich via Login-Ticket angemeldet habe, kommt folgende Meldung:

screenshot2.png

Auch der Webservice, bei dem ich mich über &login.ticket=$CMS_VALUE(#global.getUserService().getConnection().createTicket(true))$ anmelde liefert den SYSTEM User.

Wie kann es sein, dass man in der Preview mit dem Original-User (in diesem Fall Dominic.Graulich) angemeldet ist und wenn ich mich aus dieser Preview-Sitzung heraus mit einem Login-Ticket an der globalen Webapp anmelde, mit dem SYSTEM User?

Beste Grüße

Dominic

0 Kudos

Hallo zusammen,

gibt es hier noch ein Update?

Hier die Frage, die für mich noch nicht geklärt ist:

Die kann es sein, dass man in der Preview mit dem Original-User (in diesem Fall Dominic.Graulich) angemeldet ist und wenn ich mich aus dieser Preview-Sitzung heraus mit einem Login-Ticket an der globalen Webapp anmelde, mit dem SYSTEM User?

Beste Grüße

Dominic

0 Kudos

Ich kann mich hier nur wiederholen:

Die Vorschau-Erzeugung läuft immer unter einem internen System-Benutzer. Für deinen Anwendungs-Fall kannst du z.B. DynamicPersonalization benutzen

Anders formuliert: Der Benutzer innerhalb der Vorschau ist nicht der eingeloggte Web-Benutzer.

Peter
0 Kudos