2010-12-28 16 views
2

Ich bin mit Feder für meinen Web-App. Ich habe mehrere SimpleFormControllers verwendet. Ich habe eine Sitzung in dem ersten SimpleFormController für die Login-Seite erstellt mit:Spring Session-Management

HttpSession session = request.getSession(true); 

Wie kann ich andere SimpleFormControllers mit Sessions zu schützen, dh so, dass andere Controller werden nicht geladen, wenn der Benutzer nicht in ist loged

.

Vielen Dank

Antwort

6

Sie möchten wahrscheinlich Spring Security verwenden. Es ist flexibel und ermöglicht auf der Basis von Rollen Einschränkungen.

Ohne sie, müssen Sie manuell in jedem Controller überprüfen, ob der Benutzer angemeldet ist oder nicht. Oder Sie müssen ein Sicherheitsframework "neu erfinden", indem Sie der Webapp Filter hinzufügen.

Wenn Sie nur den Betrieb des Erhaltens der Sitzung schützen möchten, müssen Sie einen Filter schreiben, der die ursprüngliche Anforderung wickelt und überschreibt die getSession Methoden. Dort können Sie anhand der ursprünglichen Anfrage getSession() nach Anmeldedaten suchen.

BTW, getSession() äquivalent zu getSession(true)

+0

Danke Vitaly. Gibt es Beispiele für die Verwendung von Spring Security? – Tal

+0

http://static.springsource.org/spring-security/site/start-here.html gibt es eine schöne Video-Demonstration und Beispiel-App –

+0

Schauen Sie sich diese Guides, die ich für Spring MVC schrieb 3 und Spring Security 3 unter http: // krams915 .blogspot.com/p/tutorials.html – chris

0

an die Steuerung von Zugriff außerhalb der beabsichtigten Session zu schützen, sollten Sie die Scoping-Regeln Sie mit diesem klar geschrieben Führer müssen vergleichen. How to get Session Object In Spring MVC

Der Autor gibt ein Beispiel einer Steuerung der Erstellung mit @Scope kommentierte ("Session")

Verwandte Themen