Ich habe viel über dieses Thema gegoogelt und bisher konnte ich kein Tutorial finden, das die Integration von Struts2 und Spring Security betrifft.
Meine Frage ist, wie würde ich Spring Security und Struts2 integrieren?
Wo bestimmte Aktionen oder Seiten eingeschränkt werden sollen, wie die Adminseite / URL sollte nur von einem Administrator und anderen Dingen wie dem zugegriffen werden, wenn ein Benutzer versuchte, auf diese Seite zuzugreifen, würde er oder sie auf eine andere Seite umgeleitet werden.
Angenommen, Sie müssen sicherstellen, was auf dem Pfad /admin/*
zugänglich ist. Sie müssen den Spring-Sicherheitsfilter in Ihrem web.xml
deklarieren, der Struts-Filter sollte danach kommen, so dass Spring Security, wenn Sie auf /admin
zugreifen, die Anfrage zuerst bearbeitet und sie passieren oder blockieren kann abhängig von der Rolle des Benutzers:
Dann deklarieren Sie Ihren Sicherheitskontext für den Frühling:
%Vor% Ich schlage vor, dass Sie das struts2-convention
Plugin verwenden, so dass URLs wie /login
automatisch an eine Klasse namens " com.foo.bar.actions.LoginAction
" gebunden werden. Gleiches für LogoutAction
Nun, was unter /admin/*
ist, sollte von Spring Security gesichert werden, und der Rest sollte direkt an den Struts2-Filter weitergeleitet werden.
Schließlich können Sie in Ihrer JSP überprüfen, ob jemand Admin ist mit:
%Vor%Der Rest kann in jedem Spring Security Tutorial gefunden werden. Was wirklich wichtig ist, ist die Reihenfolge der Filtererklärung, die Federsicherheit muss zuerst sein.
Bearbeiten: Suche auf Google, es gibt auch dies Link , der für Sie hilfreich sein kann.
Das ist eigentlich sehr einfach - Spring Security ist Web-Framework Agnostiker:)
Sie müssen die Spring Security-Filterkette definieren - dies ist ein Java-Filter, der allen Anforderungen zugeordnet werden sollte. Der Filter prüft, ob der Pfad irgendwelche Privilegien erfordert, und prüft in diesem Fall, ob der Benutzer angemeldet ist und diese Privilegien hat.
Einfaches Setup-Beispiel.
web.xml (Einfügen in die vorhandene, neben der struts-Konfiguration):
%Vor%Spring-Sicherheitskonfiguration (in der in web.xml im contextConfigLocation-Parameter erwähnten Datei):
%Vor%Sie können dies beliebig erweitern - Die Dokumentation von Spring ist eher gut geschrieben
Sie können eine noch einfachere automatische Konfiguration wählen:
%Vor%Die obigen Optionen sichern Ihre Web-App pro Anfragepfad. Möglicherweise möchten Sie auch die Aktionen sichern. Hinzufügen der folgenden würde Sie in Gang bringen:
%Vor%Lassen Sie mich wissen, welche Funktionen Sie benötigen, und ich kann Sie in eine Richtung weisen. Beachten Sie, dass die Namespacekonfiguration kein Wundermittel ist. Wenn Sie eine sehr individuelle Lösung benötigen, müssen Sie möglicherweise alle Quellbohnen selbst konfigurieren, aber die Dokumentation erklärt dies gut.
Tags und Links java security spring spring-security struts2