Ich erstelle einen benutzerdefinierten Filter UsernamePasswordAuthenticationFilter, um den Authentifizierungsprozess zu verarbeiten. Grundsätzlich wird der benutzerdefinierte Filter ausgeführt und sollte ein JSON-Format mit Benutzerdetails und generiertem Token beantworten, wenn der Benutzer den http-Post durch die REST / Anmeldung ausführt.
Mein Problem ist, wo setze ich, um eine Antwort json auf den Client zu reagieren? Ich denke darüber nach, eine Unterklasse von SavedRequestAwareAuthenticationSuccessHandler zu erstellen und dort die JSON-Antwort festzulegen. Ist das eine gute Idee?
Jede Hilfe wird sehr geschätzt =)
Danke
Sie müssen Ihren eigenen SuccessHandler implementieren und ihn in UsernamePasswordAuthenticationFilter einfügen:
%Vor%NoRedirectStrategy: Standardmäßig wird der Filter UsernamePassword nach einer erfolgreichen Anmeldung umgeleitet, was Sie in diesem Fall wahrscheinlich nicht möchten. Beachten Sie auch, dass in der obigen Implementierung die Filterkette bei Authentifizierungserfolg beendet wird - Sie müssen sicherstellen, dass Ihr Filter die richtige Antwort rendert, verlassen Sie sich nicht auf das zugrunde liegende Servlet, um es für Sie zu tun.
Alternativ können Sie die Weiterleitung an ihrem Platz belassen und den Client an eine andere URL senden, die wiederum die gesuchte JSON-Antwort darstellt.
Beispielsicherheitskontext:
%Vor%Tags und Links security spring json spring-security filter