Abrufen der Sitzungs-ID in den Tomcat-Zugriffsprotokollen für die angular js-Anwendung

8

Wir versuchen, Session-ID in Access-Logs mit '%S' in server.xml zu drucken. Die Anwendung wird mit eckigen js entwickelt.

Es wird jedoch "-" anstelle der Sitzungs-ID ausgegeben.

server.xml

%Vor%

Zugriffsprotokolle:

%Vor%

Erstellt eckige js-Anwendung automatisch Sitzungs-ID?

    
Krishna Kuntala 12.05.2017, 13:53
quelle

2 Antworten

2

Die Sitzungs-ID wird nur angezeigt, wenn Ihre serverseitige Anwendung eine erstellt, und diese hängt vom verwendeten Framework ab ... Spring MVC erstellt beispielsweise immer eine neue Sitzungs-ID, wenn in der Anforderung keine Sitzungs-ID vorhanden ist .

Lassen Sie mich einen einfachen Test zeigen, den ich mit einem Spring MVC-Projekt und Tomcat gemacht habe:

Betrachten Sie das folgende Snippet von meiner server.xml

%Vor%

Bedenken Sie, dass ich bei meinem ersten Zugriff auf ein Bild keine Cookies habe:

%Vor%

Da es sich um ein Bild handelt, das nicht von Spring verarbeitet wird, erstellt mein Server keine Sitzungs-ID ... Der erneute Zugriff wird nicht helfen

%Vor%

Aber wenn ich auf eine von Spring MVC behandelte Methode zugreife, wird eine neue Sitzung erstellt (und ich habe keine volle Kontrolle über die Erstellung der Sitzung)

%Vor%

Nun greift der Client auf dasselbe Bild von vorher zu und sendet die Sitzungs-ID in der Anfrage und Tomcat kann sie protokollieren

%Vor%

Es wird also keine Sitzungs-ID für Bilder, Skripte oder andere statische Ressourcen erstellt. Aber es liegt wirklich an Ihrer Implementierung oder dem Framework, das Sie verwenden ... Und nur damit Sie wissen, ist die JSESSIONID in der Servlet 3.0 Spezifikation (ch 7.1.1 cookies, S. 55).

    
Jairton Junior 26.06.2017, 22:03
quelle
-1

Nein, Angular JS erzeugt keine sessionId für Sie. Sie sollten Ihre sessionId auf der Serverseite generieren und verwalten.

    
Ero 23.06.2017 15:10
quelle