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.
Der Zeitpunkt für das Einsetzen eines Filters mit Federsicherheit ist unten aufgeführt.
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>
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"/>
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