Sturts 2-Sitzung-Invalidierung mit dem setzen der Anforderung der Sitzung auf eine neue Sitzung
In meiner Struts-Anwendung, sobald sich ein Benutzer anmelden muss ich ungültig die aktuelle Sitzung und erstellen Sie eine neue session. Ich invalidieren der session mit
getHttpServletRequest().getSession().invalidate();
Und ich erstellen Sie eine neue session als
getHttpServletRequest().getSession(true);
Das problem ist hier nach oben ich versuche, auf getSession()
es gibt den state invalid-exception; HttpSession
ist ungültig.
getSession()
gibt eine Karte, wo in meiner action-Klasse I implementiert SessionAware
hat die setSession(Map session)
.
EDIT: Unten ist die Ausnahme
Error creating HttpSession due response is commited to client. You can use the CreateSessionInterceptor or create the HttpSession from your action before the result is rendered to the client: HttpSession is invalid
java.lang.IllegalStateException: HttpSession is invalid
So, was ich nehme an, das problem ist das Streben getSession()
immer noch Bezug auf die Sitzung, die ich habe, für ungültig erklärt.
Wie man die Struts getSession()
Verweis auf die neue session, die ich erstellt habe?
Danke. es setzt auf 30
Warum greifen Sie die struts-Sitzung, wenn Sie entwertet die servlet-Sitzung?
gut sein wie dieses. die jsp, die die Aktion nach vorne hat die s:token-tag. Was ich davon ausgehen, ein token zu erstellen und zu versuchen, Sie zu der Sitzung. Und diese s:token können nicht auf der Sitzung über die Anfrage. Das ist der Punkt, auf den die bearbeitete Antwort exception wirft.
Eigentlich, bevor diese s:token-Problem ich habe eine getSession () - Anweisung, und wenn die Zeile ausführen, wird die session ungültig-Ausnahme wirft. Aber dann Tat ich, wie setSession(null) und wieder weisen die getSession(Karte) und drucken getSession() und dann diese Ausnahme ging. Und jetzt, wenn die jsp rendert oben genannten Ausnahme, die ich gepostet aufgetreten, da der s:token
InformationsquelleAutor Harshana | 2013-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um Zugang zu den struts-Sitzung, nachdem Sie entwertet die servlet-Sitzung sollten Sie aktualisieren oder verlängern die Streben Sitzung. Zum Beispiel
nun struts session ist bereit, das neue servlet-session und Sie bereit für die Wiederverwendung der struts session.
Nein, Sie sollten nicht die Unwirksamkeit servlet-Sitzung, sollten Sie zu entkräften Streben Sitzung, tun, dass Sie 1) reinigen Sie die struts session 2) ungültig servlet-Sitzung. Ersetzen Sie den code. Statt
getHttpServletRequest().getSession().invalidate();
meine code, und nichtgetHttpServletRequest().getSession(true)
.Vielen Dank Roman. Funktioniert wie ein Charme. Der ganze Zweck des oben korrigieren, session fixation. Da es die original-request-session-id, um neue Ihre Lösung erfolgreich zu bewältigen, ist es auch. Ich ändere die überschrift und ändern Sie die Frage stellen, um zu unterstreichen die Idee, wie man entkräften Streben Sitzung in struts 2, so dass andere profitieren, weil Sie Ihre Informationen konnten nicht gefunden in google. Nochmals vielen Dank.
InformationsquelleAutor Roman C