Bonjour à tous,

Je souhaite accéder à un UsernameToken dans mon EJB.

J'utilise SOAPUI comme client et glassfish comme serveur d'applications.

Dans SOAPUI, le header est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<soapenv:Header>
      <wsse:Security soapenv:mustUnderstand="0" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
         <wsse:UsernameToken wsu:Id="UsernameToken-1">
            <wsse:Username>hello</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">GZcQV2BLUJdidoseZI/V416/GGk=</wsse:Password>
         </wsse:UsernameToken>
      </wsse:Security>
</soapenv:Header>
Dans mon EJB, je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
MessageContext msgCtxt = wsCtxt.getMessageContext();
HttpServletRequest req = (HttpServletRequest) msgCtxt.get(
                MessageContext.SERVLET_REQUEST);
System.out.println(req.getUserPrincipal());
Cela m'affiche toujours null. L'authentification fonctionne puisque si je mets un username ou un mot de passe faux, j'ai une erreur côté client.

Merci beaucoup pour votre aide !