Ich habe Spring security 3.0.7 verwendet und implementiere in meinem Projekt die Steuerung des gemeinsamen Zugriffs. Aber es funktioniert nicht. Ich habe
benutzt %Vor%Auch ich habe eine Lösung aus Federsicherheit versucht Referenz , aber es hat nicht funktioniert. Hier ist der Inhalt meiner Konfigurationsdatei:
%Vor%Ich bekomme folgende Ausnahme:
%Vor%Kann jemand mit dieser Frage helfen?
Wenn Sie UserPrincipal
und UserPrincipalImpl
(Ihre eigene Implementierung) geschrieben haben, sollten Sie die Methoden equals()
und hashCode()
des Objekts überschreiben.
Wenn Sie das Namespace-Element concurrency-control
verwenden, a ConcurrentSessionFilter wird der Filterkette automatisch hinzugefügt , daher können Sie custom-filter
nicht verwenden, um einen am selben Ort hinzuzufügen, sonst wird dieser Fehler angezeigt.
Das gleiche Problem tritt auf, wenn Sie form-login
(oder auto-config
) verwenden und versuchen, eine UsernamePasswordAuthenticationFilter
mit custom-filter
hinzuzufügen. Es sieht so aus, als ob dies das spezifische Problem verursacht, das Sie hier haben (mit Ihrer Bean myAuthFilter
).
Sie sollten wahrscheinlich den Rest Ihrer http
-Elementkonfiguration zu der Frage hinzufügen, um deutlicher zu machen, woher der Konflikt kommt.
Die Dokumentation sagt:
Fügt Unterstützung für die gleichzeitige Sitzungssteuerung hinzu, wodurch die Anzahl der aktiven Sitzungen begrenzt werden kann, die ein Benutzer haben kann. A
ConcurrentSessionFilter
wird erstellt, undConcurrentSessionControlStrategy
wird mitSessionManagementFilter
verwendet. Wenn ein Formular-Login-Element deklariert wurde, wird das Strategieobjekt ebenfalls in den erstellten Authentifizierungsfilter eingefügt. Eine Instanz vonSessionRegistry
(eineSessionRegistryImpl
-Instanz, es sei denn, der Benutzer möchte eine benutzerdefinierte Bean verwenden) wird für die Verwendung durch die Strategie erstellt.
Sie können das benutzerdefinierte Filter-Tag hier nicht verwenden. Deshalb könnte es Fehler geben. Ich habe den Inhalt dieser URL übernommen. Sieh dir das an:
Referenz: Ссылка
Ich habe die folgende applicationContext-security.xml und es funktioniert perfekt
%Vor%Um es richtig zu testen, sollten Sie Folgendes tun: Öffnen Sie die Websites in zwei verschiedenen Browsern und löschen Sie die Cookies. Beim ersten Mal kann man sich beim 2. Mal nicht einloggen. In beiden Fällen sollte das HTTP-Authentifizierungsformular vom Browser angezeigt werden. Wenn Sie dies nicht sehen, bedeutet dies, dass Sie bereits in einer vorherigen Sitzung authentifiziert wurden. Daher müssen Sie Ihre Cookies löschen. (um auf der sicheren Seite zu sein, sollten Sie es mit zwei verschiedenen Browsern testen, ansonsten werden die Cookies mit geteilt)
Tags und Links java spring spring-security