[JAVA] So leiten Sie nach der Benutzeranmeldung mit Spring-security um

Angenommen, Sie möchten einen Bildschirm erstellen, der bestimmte Bedingungen aus der Datenbank abruft und zum angegebenen Bildschirm umleitet, wenn die Bedingungen erfüllt sind.

In einem solchen Fall können Sie bei Verwendung von Spring-security einen benutzerdefinierten Filter verwenden. Sie können einen Filter definieren und die Umleitung innerhalb dieser Klasse ausführen lassen.

Von Spring-security definierter Filtertyp

Der Zeitpunkt für das Einsetzen eines Filters mit Federsicherheit ist unten aufgeführt.

Dinge, die wahrscheinlich verwendet werden

Benutzerdefinierte Filter können vor oder nach dem oben genannten oder als Alternative zum Filter selbst definiert werden.

spring-security.xml


<http>
    <!--Bisherige-->
    <custom-filter before="FORM_LOGIN_FILTER" ref="myFilter" />
    <!--Als Alternative zu sich selbst-->
    <custom-filter position="FORM_LOGIN_FILTER" ref="myFilter" />
    <!--Rückseite-->
    <custom-filter after="FORM_LOGIN_FILTER" ref="myFilter" />
</http>

So definieren Sie den Filter selbst

Es scheint besser zu sein, "GenericFilterBean" für Federfilter zu verwenden. Definieren Sie eine Klasse, die diese Klasse an einer geeigneten Stelle im Projekt erbt.

Legen Sie dann den Namespace der Klasse und die ID für Spring in XML fest. Auf diese Weise wird es für die Federsicherheit verwendet.

spring-context.xml


<beans:bean id="myFilter" class="org.baeldung.security.filter.CustomFilter"/>

Um einen doppelten Versand zu verhindern

Wenn ich einen Filter schreibe, der sich auf das gesamte Projekt auswirkt, wird der doppelte Versandfehler angezeigt, den ich in Struts gesehen habe. Dies:

java.lang.IllegalStateException: Cannot forward after response has been committed

Recommended Posts

So leiten Sie nach der Benutzeranmeldung mit Spring-security um
[Rails] Umgang mit URL-Änderungen nach dem Rendern
Wie man mit html.erb nummeriert (nummeriert)
So aktualisieren Sie mit activerecord-import
Wie fange ich mit schlank an?
Wie man ein Zeichen mit "~" einschließt
Wie man mssql-tools mit alpine benutzt
So beschneiden Sie ein Bild in libGDX
So passen Sie TextPosition mit der iOS-Tastaturerweiterung an
So teilen Sie Dateien mit Docker Toolbox
So kompilieren Sie Java mit VsCode & Ant
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
[Android] Wie man mit dunklen Themen umgeht
Verwendung von BootStrap mit Play Framework
So wechseln Sie Miniaturbilder mit JavaScript
API-basierte Steuerung mit cancancan
So erreichen Sie den Dateidownload mit Feign
So aktualisieren Sie verwandte Modelle mit accept_nested_attributes_for
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
So setzen Sie JAVA_HOME mit dem Appassembler-Maven-Plugin von Maven
So implementieren Sie TextInputLayout mit Validierungsfunktion
So behandeln Sie Anmeldefehler mit devise
So löschen Sie Daten mit einem externen Schlüssel
So testen Sie den privaten Bereich mit JUnit
So überwachen Sie Nginx mit Docker-Compose mit Datadog
Der Umgang mit dem Vorkompilieren von Assets ist fehlgeschlagen.
So erreichen Sie das Hochladen von Dateien mit Feign
So erstellen Sie eine Rails 6-Umgebung mit Docker
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
[Rails6] So verbinden Sie die von Scaffold generierte Buchungsfunktion mit der von devise generierten Benutzerfunktion
So laden Sie Oracle JDK 8 U / min mit Curl herunter
[Java] So testen Sie, ob es in JUnit null ist
Wie man jeden Fall mit Mockito 1x verspottet
Wie man jeden Fall mit PowerMock + Mockito1x verspottet
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
So speichern Sie mit einer Eingabe in mehreren Tabellen
Ich habe versucht, Anmeldeinformationen mit JMX zu verwalten
So testen Sie Interrupts während Thread.sleep mit JUnit
Verwendung des eingebauten h2db mit Federstiefel
Verwendung des Java-Frameworks mit AWS Lambda! ??
Fehler bei der Bundle-Installation nach dem Upgrade auf Catalina
Versuchen Sie, die Anmeldefunktion mit Spring Boot zu implementieren
So erstellen Sie mit ActiveHash mehrere Pulldown-Menüs
Verwendung der Java-API mit Lambda-Ausdrücken
[Validierung] Schienen Wie nach dem heutigen Datum angeben
Erste Schritte mit Eclipse Micro Profile
So geben Sie jemandem Ihr Image mit Docker
So fügen Sie mit MyBatis alles auf einmal ein
So erstellen Sie eine API mit GraphQL und Rails