2009-01-06 9 views
2

J'utilise XFire comme fournisseur de services Web pour Spring Remoting. J'utilise un AbstractHandler pour authentifier la requête SOAP. L'idée est d'identifier la requête par le domaine du serveur d'origine et une clé API (a-la Google Maps). Le seul problème est que je n'arrive pas à trouver un moyen de récupérer l'objet ServletRequest à partir de la méthode invoke(), qui accepte uniquement un objet MessageContext.Comment puis-je obtenir l'objet ServletRequest à l'intérieur de la méthode invoke() d'un XFire AbstractHandler?

La seule idée que je peux penser est d'utiliser un filtre et de stocker l'objet de demande dans une variable ThreadLocal, mais je préfère vraiment éviter cette solution.

Des idées?

Vive

Shai

+0

Pourquoi avez-vous? –

+0

J'ai besoin de savoir quel est le nom d'hôte du serveur à l'origine de la requête. –

Répondre

2

Je n'ai pas testé mais j'ai la source XFire à portée de main pour que je creusais dans les classes pour voir si ce serait facile. À partir de l'appel à invoke vous devriez être en mesure d'obtenir le ServletRequest avec le code suivant:

ServletRequest request = (ServletRequest) context.getProperty(org.codehaus.xfire.transport.http.XFireServletController.HTTP_SERVLET_REQUEST); 
+0

Merci! J'aurais dû penser à télécharger le code source moi-même :) –

Questions connexes