So haben wir einen Autorisierungsserver, mit dem wir OAuth2 Access Token erstellen. Alle Untersysteme verifizieren das Zugriffstoken und können den Anforderungspfad nach Berechtigungen überprüfen. In einem der Untersysteme müssen wir jedoch in den Anfragetext schauen und die 'ID' extrahieren, um zu überprüfen, ob der Benutzer die richtige Berechtigung zum Senden hat die Anfrage. Die Anforderungsnachricht ist im JSON-Format und dies ist eine POST-Anforderung mit der vom Client bereitgestellten ID.Wie Zugriff auf den Anfragetext in SpringBoot AccessDecisionVoter?
Die ID in der Anfrage ist eine Prozess-ID und einige Benutzer haben möglicherweise keine Berechtigung für einige Prozesse, daher müssen wir die ID überprüfen.
Also während in , können wir nur Anfrage URI bekommen, aber ich kann HttpServletRequest
nicht erhalten, um die Nachricht zu lesen. (Hinweis: Wir haben einen Request-Wrapper, der es uns ermöglicht, den Anfragetext mehrmals zu lesen)
Ich habe versucht, HttpServletRequest
automatisch zu verkabeln, kein Glück. Es gibt einen Fehler, dass kein Thread an die Anfrage gebunden wurde
Ich dachte auch über die Implementierung UserDetailService
, aber wieder kein Glück, da dies nicht von Spring Boot aufgerufen wird. Denken Sie daran, dass wir eine benutzerdefinierte AuthorizationServerTokenServices
verwenden, und das ist in einer allgemeinen Bibliothek.
Wie bekomme ich Http-Servlet-Anfrage oder die Anfrage Körper in ?
Danke! Die Frage ist also, ist das der richtige Ort dafür? In Bezug auf gute Praxis? – xbmono
Dafür sind die Wähler der Entscheidung: D – Strelok