Bonjour a tous,
j'essaye d'appelé un webservice sécurisé avec un certificat un user name/password
pour le certificat, sa ne pose aucun problème.
par contre sa coince au niveau de l'utilisateur.
voici l'erreur obtenue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Caused by: org.apache.cxf.ws.policy.PolicyException: No username available at org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.policyNotAsserted(AbstractBindingBuilder.java:283) at org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.addUsernameToken(AbstractBindingBuilder.java:640) at org.apache.cxf.ws.security.wss4j.policyhandlers.TransportBindingHandler.addUsernameTokens(TransportBindingHandler.java:80) at org.apache.cxf.ws.security.wss4j.policyhandlers.TransportBindingHandler.handleBinding(TransportBindingHandler.java:127)
voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 MonService monService = new MonService(); IMonService imonService = monService.getWSHttpBindingIMonService(); Client client = ClientProxy.getClient(imonService); Endpoint cxfEndpoint = client.getEndpoint(); cxfEndpoint.getOutInterceptors().add(new SAAJOutInterceptor()); Map<String, Object> ctx = new HashMap<String, Object>(); ctx.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN); ctx.put(WSHandlerConstants.USER, "username"); ctx.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT); ctx.put(WSHandlerConstants.PW_CALLBACK_CLASS, ClientPasswordHandler.class.getName()); WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(ctx); cxfEndpoint.getOutInterceptors().add(wssOut); imonService.setDossier("test");
merci d'avance
Partager