Anleitung zur Integration von Spring Security und Struts2
Habe ich getan Tonnen googeln zu diesem Problem und bis jetzt konnte ich keine finden-tutorial über die Integration von Struts2 und Spring Security.
Meine Frage ist, dass, Wie würde ich integrieren, Spring Security und Struts2?
Wo ich will, bestimmte Aktionen oder Seiten eingeschränkt werden, wie die admin-Seite/url soll aufgerufen werden, nur von einem administrator und andere Dinge wie, dass, wenn ein Benutzer versucht, auf die zugegriffen, die Seite, er oder Sie wäre zu einer anderen Seite umgeleitet.
- Und mit was genau du Probleme?
- Ich habe keine Ahnung, wo Sie beginnen, ein einfaches Beispiel aus dem Boden tun würde.
- Folgen Sie einfach einige spring-security tutorial/Beispiel.
- würde nicht es ändern, um Struts2 Action-Klassen? oder struts2.xml? würde ich nur wirklich einen security.xml?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lassen Sie uns sagen, müssen Sie sicher, was ist zugänglich auf der
/admin/*
Weg. Sie müssen erklären, die Spring-Security-Filter in Ihremweb.xml
wird die Struts-filter kommen sollte, nachdem, so dass, wenn Sie Zugriff auf/admin
es wird Frühling Sicherheit, dass die Anfrage verarbeiten der ersten und wird in der Lage sein, es zu lassen, durchgelassen oder blockiert, abhängig von der Rolle des Benutzers:Du dann deklarieren Sie Ihre spring security-Kontext:
Schlage ich vor, dass Sie die
struts2-convention
plugin, so dass URLs wie/login
automatisch gebunden, um eine Klasse mit sagen wir malcom.foo.bar.actions.LoginAction
. Gleiche fürLogoutAction
Nun, was ist unter
/admin/*
sollte sichergestellt werden, dass durch Spring Security, und der rest sollte direkt weitergeleitet werden zu den Struts2-filter.Schließlich in Ihre JSP-Sie können überprüfen, ob jemand ein Admin mit:
Den rest kann man in jedem Frühjahr Security tutorial. Was wirklich wichtig ist, ist die Reihenfolge der Filter Erklärung, spring security, müssen die ersten sein.
Edit: die Suche auf google, es gibt auch dieser link, die eine Hilfe sein kann für Sie.
SecurityContextHolderAwareRequestWrapper.isUserInRole("ROLE_ADMIN")
struts2-annotation
: struts.apache.org/2.2.1/docs/struts-2-annotations.html und auch für spring security wie@PreAuthorize
etc static.springsource.org/spring-security/site/docs/3.0.x/...@PreAuthorize
ist von spring security. Streben Anmerkungen sind@Action
zum Beispiel.Dies ist eigentlich sehr einfach - Spring Security ist ein web-framework Agnostiker 🙂
Müssen Sie definieren, Spring Security filter-Kette - dies ist ein Java-Filter, die zugeordnet werden soll, alle Anforderungen. Der filter wird überprüft, ob der Pfad erfordert keine privilages und wenn ja, prüft ob der Benutzer angemeldet ist und hat diese privilages.
Einfaches Beispiel-setup.
web.xml ("einfügen", um Ihre bestehende, neben der struts-config):
Spring security-Konfiguration (in der Datei erwähnt web.xml in contextConfigLocation parameter):
Können Sie erweitern diese, wie Sie wollen - Frühling in der Dokumentation ist ziemlich gut geschrieben
Können Sie gehen zusammen ein noch einfacheres auto-config:
Oben genannten Optionen sichern Sie sich Ihre web-app nach Wunsch Pfad. Möchten Sie vielleicht zum sichern der Aktionen als gut. Hinzufügen der unten würden Sie loslegen:
Lassen Sie mich wissen, welche Funktionen Sie benötigen und ich kann Sie in eine Richtung. Beachten Sie, dass config-namespace ist kein Allheilmittel - wenn Sie brauchen eine sehr individuelle Lösung, müssen Sie möglicherweise konfigurieren Sie alle spring-beans selbst, aber in der Dokumentation erklärt dies gut.