2016-04-10 9 views
0

Ich versuche, die JSESSIONID in Vaadin nach dem Login zu ändern.So ändern Sie JSESSIONID in Vaadin nach dem Login

dies ist mein Code

System.out.println("0000.....OLD-SESSION: " + VaadinSession.getCurrent().getSession().isNew()); 
System.out.println("0000.....OLD-SESSION-ID: " + VaadinSession.getCurrent().getSession().getId()); 
VaadinSession.getCurrent().getSession().invalidate(); 
WrappedSession newSession = VaadinService.getCurrentRequest().getWrappedSession(true); 
System.out.println("1111.....NEW-SESSION: " + newSession.isNew()); 
System.out.println("1111.....NEW-SESSION-ID: " + newSession.getId()); 
VaadinService.getCurrentResponse().addCookie(new Cookie("JSESSIONID", newSession.getId())); 

///////////////////// OUTPUT //////////////////////// 
0000.....OLD-SESSION: false 
0000.....OLD-SESSION-ID: F353B452D148B35E71920C73EA3BB7AA 
1111.....NEW-SESSION: true 
1111.....NEW-SESSION-ID: 8C6E4EF40724C060B9B10C1E70FB2441 

JSESSIONID erfolgreich changeing aber nach der Anmeldung auf meinem Armaturenbrett im SESSION bekommen ABGELAUFEN Box. Wie kann ich das in Vaadin lösen?

MY AIM: jsession ID nach dem Login in Vaadin

enter image description here

IM ändern nun wie folgt aus, im mit VaadinService.reinitializeSession

System.out.println("0000.....OLD-SESSION: " + VaadinSession.getCurrent().getSession().isNew()); 
System.out.println("0000.....OLD-SESSION-ID: " + VaadinSession.getCurrent().getSession().getId()); 
for (Cookie cookie : VaadinService.getCurrentRequest().getCookies()) 
{ 
    System.out.println("OLD:: " + cookie.getName() + " - " + cookie.getValue()); 
} 
//        VaadinSession.getCurrent().getSession().invalidate(); 
//        WrappedSession newSession = VaadinService.getCurrentRequest().getWrappedSession(true); 

VaadinService.reinitializeSession(VaadinService.getCurrentRequest()); 
System.out.println("1111.....NEW-SESSION: " + VaadinSession.getCurrent().getSession().isNew()); 
System.out.println("1111.....NEW-SESSION-ID: " + VaadinSession.getCurrent().getSession().getId()); 

for (Cookie cookie : VaadinService.getCurrentRequest().getCookies()) 
{ 
    System.out.println("NEW:: " + cookie.getName() + " - " + cookie.getValue()); 
} 

VaadinService.getCurrentResponse().addCookie(new Cookie("JSESSIONID", VaadinSession.getCurrent().getSession().getId())); 

///////////////// NEW OUTPUT ///////////////// 
0000.....OLD-SESSION: false 
0000.....OLD-SESSION-ID: 7115CC9FF20C2CB485B9F35FDCCF7DEE 
OLD:: JSESSIONID - 0D9FCDE46EC8BFDF90A267E01F763EE9 
OLD:: JSESSIONID - 7115CC9FF20C2CB485B9F35FDCCF7DEE 
1111.....NEW-SESSION: true 
1111.....NEW-SESSION-ID: 44969C81DAA007B8CF296C8FCEE6581D 
NEW:: JSESSIONID - 0D9FCDE46EC8BFDF90A267E01F763EE9 
NEW:: JSESSIONID - 7115CC9FF20C2CB485B9F35FDCCF7DEE 

etwas zu tun, aber JSESSIONID Aktualisierung ist nicht auf Browser-Cookie

enter image description here

+0

Warum möchten Sie die Sitzungs-ID ändern? –

+0

gibt es einen IS-Typ von Client-Seite :(. Wer möchte ich dies implementieren. Ich weiß, dass diese Sache keine Auswirkungen auf Session-Hijacking. Wer nur in Browser-Ressourcen Abschnitt und sagte, ich brauche diese Session-ID nach dem Login geändert und auch Abmeldung nach dem Abmelden Session-ID Änderungen erfolgreich –

Antwort

2

Verwenden VaadinService.reinitializeSession

+0

ich Ihre Lösung angewandt haben, aber JSESSIONID nicht auf Browser-Aktualisierung :( –

+0

Es erstellt eine neue Server-Seite Session das Cookie bleibt die gleiche –

+0

seltsam, weil http:... //test.vaadin. com/7.6.4/run/ChangeSessionId? neustartApplication scheint gut zu funktionieren und ändert die Sitzungs-ID. Quellen unter https://github.com/vaadin/vaadin/blob/master/uitest/src/com/vaadin/tests/applicationcontext /ChangeSessionId.java –

1

ich spring security session fixation bin mit. In meinem Fall haben die Anmeldung und das Dashboard jeweils eine eigene Benutzeroberfläche. Nach dem Login erfolgt eine Umleitung (Site Reload) zum Dashboard.

Spring security erzeugt die neue Session und notwendige Daten migrieren. Die neue Sitzungs-ID wird beim Weiterleiten in den Cookie im Browser geschrieben.

Verwandte Themen