2011-01-03 9 views
1

Ich habe eine hübsche Standard-Webapp mit Spring-Sicherheit, die eine Datenbank-gestützte Form Login für benutzerspezifische Pfade (wie/user/**) benötigt, und einige vollständig offene und öffentliche Pfade (wie /index.html).Spring-Sicherheit http-basic auth zusätzlich zu anderen Authentifizierungstypen

Da sich diese Webanwendung jedoch noch in der Entwicklung befindet, möchte ich ein HTTP-Basis-Popup über alle Pfade (/ **) hinzufügen, um etwas Privatsphäre hinzuzufügen. Daher versuche ich ein http-basic Popup hinzuzufügen, das nach einer universellen Benutzer/Pass-Kombination (ex admin/foo) fragt, die benötigt wird, um jeden Pfad anzuzeigen, aber dann alle anderen zugrunde liegenden Authentifizierungsmechanismen intakt zu lassen.

Ich kann nicht wirklich etwas mit dem <http>-Tag tun, da dies die "Keys aus dem neugierigen Crawler" -Authentifizierung mit der "Benutzeranmeldung" -Authentifizierung verwechseln wird, und ich sehe keine Möglichkeit, verschiedene Pfade zuzuordnen verschiedene Authentifizierungsmechanismen

Gibt es einen Weg, dies mit Federsicherheit zu tun? Oder gibt es eine Art einfachen, einfachen Filter, den ich unabhängig von den Authentifizierungsmechanismen der Federsicherung anwenden kann?

Antwort

0

Ja, Sie mehrere Authentifizierungs Filter im Frühjahr verwenden können Sicherheit. Der beste Weg, den ich gefunden habe, ist jedoch, das <http> Element des Spring Security-Namespace wegzulassen und stattdessen die normale Spring Bean-Notation zu verwenden.

Angeben alle Spring Security Bohnen ‚von Hand‘ bringt Ihnen die nötige Flexibilität, um die abgefangenen URLs zu steuern und welche für welche URL-Muster wird Feuer filtert.

Der Nachteil ist, dass es erfordert eine Menge zusätzlicher Bohne Definitionen spezifizieren, von denen viele als Namespace-Variante natürlich nicht so gut lesbar sind.

+0

Ich wusste nicht, dass Sie es ohne den http-Tag tun könnte - dies eine viel bessere langfristige Lösung sein würde, aber in meinem Fall musste ich nur einen schnellen Hack die zusätzliche Komplexität Sie beschreiben, zu vermeiden. Ich bleibe bei meiner Lösung, aber deine Antwort ist besser: D – Keith

Verwandte Themen