Session ID

GlassFish V2

Normalerweise encodet GlassFish 2 die Session ID automatisch in die URL, wenn ein Browser keine Cookies unterstützt. Zusätzlich besteht die Möglichkeit das Property enableCookies so zu setzen, dass die Session ID niemals oder immer an die URL angehängt wird.

Diese Property Einstellungen können aber, wegen eines Bug bei neu erzeugten Sessions [1], sehr verwirrend sein. Ausserdem arbeitet auch das Property enableURLRewriting nicht wie man es erwartet.

GlassFish V2.1

GlassFish 2.1 behebt dieses unerwartete Verhalten und garantiert für alle Fälle, dass die Einstellung von enableCookies auf true die Session ID nur in ein Cookie speichert oder bei false die Session ID nur in die URL encodet.

Weil diese Version enableURLRewriting auch nicht unterstützt, ist die automatische Handhabung der Session ID nicht mehr möglich.

Wenn deine Applikation alle Clients unterstützen soll, auch diejenigen die keine Cookies akzeptieren, dann must du folgendenes in die Datei sun-web.xml [2] einfügen.

<session-config> <session-properties> <property name="enableCookies" value="false" /> </session-properties> </session-config>

Das jetzige Problem ist, dass alle URLs der Applikation die Session ID enthalten, was bedeutet:

GlassFish V2.1 Patch

Wenn du diese Probleme vermeiden und deine Applikation weiterhin mit automatischen Handling der Session ID laufen lassen möchtest, kannst du auch das von Jan Luehe [4] zur Verfügung gestellte nicht offizielle Patch [3] benutzen, welches die GlassFish 3 Unterstützung für enableURLRewriting auf die aktuelle Version zurückportiert.

Lege dieses jar einfach irgendwo in deinem Datei System ab und definiere den Pfad im Attribute classpath-prefix des Tags java-config [5].

GlassFish V2.1.1

In dieser Version tritt das Problem nicht mehr auf. Das automatische Handling der Session ID funktioniert auch ohne Patch und ohne spezielle Properties wieder wie gewohnt.

GlassFish V3

GlassFish 3 stellt eine bessere Kontrolle über das Session Handling zur Verfügung, denn es unterstützt enableCookies und enableURLRewriting [6]. Standardmässig sind beide auf true, für die automatische Erkennung von Cookie basierter oder URL basierter Session ID ist somit kein Eintrag in sun-web.xml nötig.

Fazit

Ich bevorzuge die Lösung mit dem automatischen URL Rewriting, auch für SEO Applikationen. Die Seite I-Coding selbst ist mit mehreren Keys in Googles Top 10, auch wenn sie JSF und Session IDs verwendet. Des weiteren können Webmaster und Entwickler die URLs ihrere Applikation auch mit einer Sitemap Datei an die wichtigsten Suchmaschinen senden.

Resourcen

[1] Issue 3972
[2] /WEB-INF/sun-web.xml
[3] Patch for GlassFish V2.1
[4] Jan Luehe's Blog
[5] /domains/domain1/config/domain.xml
[6] Issue 4394

Johannes Hammoud Session ID 30.01.2009

I Coding : Community über Java Programmierung

Sprache Englisch+-

Java JSF JavaScript HTML CSS NetBeans GlassFish MySQL

Impressum

Besuche
6307276
Heute
438