Environnement:
J’ai essayé d’implémenter pour une authentification simple, c’est-à-dire avec un type de texte simple avec un mot de passe, cela fonctionne mais quand j’ai essayé de mettre en œuvre le type de mot de passe, en me donnant l’exception:
Dérouler maintenant: org.apache.cxf.binding.soap.SoapFault: Le message a expiré org.apache.ws.security.WSSecurityException: le message a expiré
Je donne une nouvelle valeur de nonce pour chaque demande et un délai de cinq minutes
Définition de la classe WSS4JInInterceptor Bean:
Client xml request Code:
joe PE7F51/oyWFVMsiZURuUwjoZVPY= <!--2013-12-17T13:12:00.429Z--> efPSkfHXTM6NFDDD1CJHsw== 2013-12-23T12:17:15Z 234 0908923 23423 1000
Quand j’ai essayé d’appeler le service, je reçois une exception comme
ns1:MessageExpired The message has expired
Quelqu’un peut-il me dire où je me trompe?
Je suspecte que ce soit un bogue dans une version antérieure de wss4j. Si vous parsingz la date à l’aide de SimpleDateFormat, vous pouvez définir le fuseau horaire sur UTC (heure Zulu).
sdf.setTimeZone("UTC");
Cela a cependant été corrigé dans la version 2.0-beta.
Edit: Ce n’est pas un bogue dans wss4j. La spécification indique que le fuseau horaire doit être en UTC.