Comment obtenir l'objet ServletRequest à partir de la méthode invoke () de XFire AbstractHandler?
-
03-07-2019 - |
Question
J'utilise XFire en tant que fournisseur de services Web pour Spring Remoting. J'utilise un AbstractHandler pour authentifier la demande SOAP. L'idée est d'identifier la demande par le domaine du serveur d'origine et une clé d'API (comme Google Maps). Le seul problème est que je n'arrive pas à trouver un moyen d'extraire l'objet ServletRequest à partir de la méthode invoke (), qui accepte uniquement un objet MessageContext.
La seule idée à laquelle je puisse penser consiste à utiliser un filtre et à stocker l'objet de requête dans une variable ThreadLocal, mais je préférerais vraiment éviter cette solution.
Des idées?
A bientôt
Shai
La solution
Je n’ai pas testé cela, mais comme j’ai le code source de XFire, j’ai fouillé dans les classes pour voir si cela serait facile. Depuis l'appel à invoke
, vous devriez pouvoir obtenir le ServletRequest
avec le code suivant:
ServletRequest request = (ServletRequest) context.getProperty(org.codehaus.xfire.transport.http.XFireServletController.HTTP_SERVLET_REQUEST);