Session tracking mit URL rewrite - Session weg!

Status
Nicht offen für weitere Antworten.

Wyvern

Mitglied
Hallo

Woran kanns liegen, wenn ich bei einem klick auf eine ge-rewritete URL die gesamte Session verlier. Bei klicks auf nicht geänderte Links geht alles normal weiter.

Meine encodeURL() sieht in etwa wie folgt aus:
Code:
private String encodeURL(String s) {
		if (!encrypt) {
			return s;
		}
		
String idStr = getIdString(s);
		 
		if (action.startsWith("showProductDetail")) {
			s = s.replaceAll("/shop", "");
			Product p = ProductProcessor.getProductByNumber(NumberFunctions.string2Int(idStr), countryCode, languageCode);
			if ( p == null)
				return idStr + ".html";
			return "/" + p.getName() + "-" + idStr + ".html";
		} else if (action.startsWith("showCategory")) {
			Category cat = CategoryProcessor.getCategoryByCatId(NumberFunctions.string2Int(idStr), countryCode, languageCode);
			if ( cat == null) 
				return s;
			s = s.replaceAll("/shop", "");
			if(countryCode.equals("CH"))
				return "/" + languageCode + "/" + cat.getTextURL() + "/";
			return "/" + cat.getTextURL() + "/";
		} else if (action.startsWith("showPage")) {
			s = s.replaceAll("/shop", "");
			return "/" + idStr + ".html";
		} else if (action.startsWith("changeCountry")) {
			s = s.replaceAll("/shop", "");
			return s;
		} else {
			// this link will not be encoded
			return s;
		}
	}

Die Links sehen genau so aus, wie sie aussehen sollen. Aber der verlust der Session ist bei nem Webshop fatal...
 

Wyvern

Mitglied
Ich hab die LinkTag etwas aufgebohrt. Ausgeben tu ich den Link dann per
Code:
TagUtils.getInstance().write(pageContext, results.toString());
 
M

Marzel

Gast
Wenn ich das richtig sehe, schreibst du nirgends die session id in deinen Link. D.h. es ist klar, dass du da einen Session-Abriss hast. (Falls deine Session in einem cookie gespeichert wird, sollte das Problem mit dem Session-Abriss nicht auftreten.) Du solltest dennoch die bereits vorgeschlagene Methode encodeUrl des HttpServletResponse verwenden und dann anschließend das daraus erhaltene Ergbnis deinen Bedürfnissen anpassen.
 

Wyvern

Mitglied
Die Session wird in nem Cookie gespeichert. Hab nun die Ursache des Fehlers gefunden.

Die Applikation liegt beim Tomcat in einem Unterverzeichnis. Durch das Rewrite wird das Unterverzeichnis allerdings entfernt. Das bedeutet, der Tomcat sichert die Session in einem Cookie im Applikationsverzeichnis. Nach dem Klick auf den gerewriteten Link wird das Sessioncookie allerings im Rootverzeichnis gesucht. Dort wird keins gefunden, und der Tomcat legt ein neues an. Allerdings wieder im Applikationsverzeichnis.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Q Session Tracking - Wie macht mans richtig! Allgemeines EE 3
R Session Tracking & Cookies Allgemeines EE 3
A (EJB)Session abhängige Parameter in POJO lesen Allgemeines EE 3
O JSF / Primefaces Session handling Allgemeines EE 1
I Session löschen in Bean (Session Beans) Allgemeines EE 1
J Hello World mit Stateless Session Bean - Was mache ich falsch? Allgemeines EE 2
H Shared Session in Webmodulen Allgemeines EE 2
J Unterschied zwischen HttpSession und Stateful Session Bean Allgemeines EE 3
R Wie eine stateful session bean erneut "aufgreifen" Allgemeines EE 22
P Unterschied Session Scope / Stateful Session Bean Allgemeines EE 6
F Session zerstören Allgemeines EE 12
A Im PhaseListener auf Stateful Session Bean zugreifen Allgemeines EE 6
G Session Allgemeines EE 6
E Session Problem Allgemeines EE 9
G Session neu!? Allgemeines EE 7
M Fehler bei Javamail Session mit Glassfish 3 Allgemeines EE 3
Java.getSkill() verbindung / connection in session speichern Allgemeines EE 4
D Frage zum Statefull Session Beans Lebenszyklus Allgemeines EE 3
MQue Session - Cookie Allgemeines EE 27
MQue Session Exception Allgemeines EE 5
M j_security_check Login und Session-ID Allgemeines EE 2
S Session in eine andere Anwendung übergeben Allgemeines EE 2
F Session abgelaufen und direkter Aufruf Allgemeines EE 10
Y myFaces und Hibernate Session Handling Allgemeines EE 7
S tomcat session timeout - und was danach? Allgemeines EE 1
Q Form Based Authentication - Session Attribute ? Allgemeines EE 2
A Session Bean mit Local-Interface nutzen Allgemeines EE 3
G Session Cookies Allgemeines EE 2
B Session Daten pro User merken Allgemeines EE 9
H [JSP JSF] Session Timeout und Redirekt zur Startseite Allgemeines EE 5
I Session-Attribute von Client zugänglich? Allgemeines EE 6
G session token Allgemeines EE 3
K tomcat: session-unabhängiges speichern Allgemeines EE 3
S Struts und Session Allgemeines EE 2
J Tomcat mit eigener Session-Implementierung Allgemeines EE 15
Y JSF - Session Handling Firefox Allgemeines EE 3
Y JSF - Session invalidate bei outpulink möglich? Allgemeines EE 4
B Variablen ausserhalb der session ? Allgemeines EE 2
T Zugriff auf Session-Objekte in JSP Allgemeines EE 2
G Neue Session bei der Verwendung von Frames Allgemeines EE 3
RaoulDuke EJB 3.0 - Exceptions aus Methoden einer Session Bean Allgemeines EE 2
T Session-Problem Allgemeines EE 2
Z Session aufräumen Allgemeines EE 2
G Session Problem Allgemeines EE 5
G JBoss - Session / Entity Allgemeines EE 8
S Bild in Session Allgemeines EE 2
F Session Bean -> Daten aus dem Servlet holen Allgemeines EE 11
P Struts Form Bean vs. Session Variable Allgemeines EE 6
A JSF - Daten in Session speichern Allgemeines EE 2
R Formulareingaben gezielt aus Session löschen Allgemeines EE 4
W Session nach Browserschließung erhalten im Tomcat Allgemeines EE 4
R Vernünftige Session-Verwaltung mit Struts Allgemeines EE 4
Q Tomcat/java-Session-Problem Allgemeines EE 9
L Zwei Browserfenster mit unterschiedlicher session - geht das Allgemeines EE 3
flashfactor Logging in einem Session-Bean Allgemeines EE 2
H JSP, Session und Java-Bean Allgemeines EE 4
P Session Problem Allgemeines EE 17
flashfactor Frage zu Session-Lebensdauer Allgemeines EE 3
J xdoclet session facade + value object Allgemeines EE 2
M Session Bean vers. Entity Bean Allgemeines EE 3
G ResultSet in Session speichern Allgemeines EE 4
P Session Attribute an Klasse übergeben Allgemeines EE 13
G Mit Session-IDs richtig umgehen Allgemeines EE 3
C Mail von einer Session Bean aus senden Allgemeines EE 2
P Session NullPointerException Allgemeines EE 17
H daten in session speichern Allgemeines EE 8
G list in session schreiben Allgemeines EE 4
P String-Array an session Variable übergeben Allgemeines EE 3
P Session Beans importieren Allgemeines EE 2
F Problem mit Session (Weitergabe an andere JSPs) Allgemeines EE 2
T SOAP: Url Rewrite?! Allgemeines EE 6
G Struts und url rewrite Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben