Salut à tous,
Je me retrouve actuellement confronté à un soucis majeur sur le développement d'une application Client/Serveur utilisant CXF.
J'en suis encore aux balbutiements sur cette technologie et je pense ne pas tout saisir sur son fonctionnement. J'ai longuement lu le tutoriel de Apache CXF, et cherché en vain sur internet une réponse à mon problème, et je me sens dans l'obligation de requérir votre aide.
Je souhaiterais qu'à chaque requête de mon client vers mon serveur le nom d'utilisateur soit envoyé dans le message. Cela permettra à mon serveur de certifier la provenance des requêtes à chaque appel d'un service sur mon serveur Web.
J'ai tenté de créer un Interceptor côté serveur pour récupérer le nom d'utilisateur, et créer un autre interceptor côté client qui lui se chargerait d'intégrer le nom d'utilisateur (ou une quelconque information) au message SOAP.
L'interceptor côté client se chargeant de garder le nom d'utilisateur est placé dans le outInterceptor chain. Il s'appelle UserNameInterceptor et il étend AbstractPhaseInterceptor<Message>
L'interceptor côté serveur se charge de récupérer (en théorie) le nom d'utilisateur pour certifier la provenance des messages. Il est ajouté par une annotation à mon web service :
@InInterceptors(interceptors = { interceptor.UserInterceptor })
Mes questions seront donc multiples :
Comment arriver à envoyer un message 'SOAP' contenant le nom d'utilisateur (ou autrement dit : comment ajouter ses propres informations dans un message soap) ?
Je me suis inspiré de : http://cxf.apache.org/docs/interceptors.html pour écrire mon code.
Je tiens à préciser tout de même que je récupère l'adresse IP par l'utilisation côté serveur d'une interceptor utilisant le code suivant :
HttpServletRequest request = (HttpServletRequest) message
.get(AbstractHTTPDestination.HTTP_REQUEST);
Cette classe propose également de récupérer le nom d'utilisateur, mais ça n'est pas celui que je veux. Je veux pouvoir passer explicitement un nom d'utilisateur (ou une information quelconque) dans mon message SOAP.
Tout semble simple d'après le tuto, mais je sèche sévèrement sur ce problème...
Merci à ceux qui prendront le temps de me répondre.
Partager