Wie kann ich das ServletRequest -Objekt innerhalb einer Xfire -AbstractHandler -Invoke () -Methode bekommen?
-
03-07-2019 - |
Frage
Ich verwende XFire als Webdiensteanbieter für das Frühlings -Remoting. Ich benutze einen AbstractHandler, um die SOAP -Anfrage zu authentifizieren. Die Idee ist, die Anforderung durch die Domäne des Ursprungsservers und einen API-Schlüssel (A-LA Google Maps) zu identifizieren. Das einzige Problem ist, dass ich anscheinend keinen Weg finden kann, das ServletRequest -Objekt innerhalb der Invoke () -Methode zu holen, die nur ein MessageContext -Objekt akzeptiert.
Die einzige Idee, die ich mir vorstellen kann, ist die Verwendung eines Filters und das Speichern des Anforderungsobjekts in einer ThreadLocal -Variablen, aber ich würde es wirklich vorziehen, diese Lösung zu vermeiden.
Irgendwelche Ideen?
Prost
Shai
Lösung
Ich habe das nicht getestet, aber ich habe die Quelle für Xfire Handy, also habe ich in die Klassen gegraben, um zu sehen, ob dies einfach wäre. Von innerhalb des Anrufs zu invoke
Sie sollten in der Lage sein, das zu bekommen ServletRequest
mit dem folgenden Code:
ServletRequest request = (ServletRequest) context.getProperty(org.codehaus.xfire.transport.http.XFireServletController.HTTP_SERVLET_REQUEST);