Savon SSL handshake
Mon client est d'obtenir la réponse du serveur via HTTP.
SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
SOAPConnection connection = sfc.createConnection();
SOAPMessage soapMessageResponse = connection.call(soapRequest, new URL(serviceLocation));
Je veux la communication SSL entre le client/serveur.
Dans un autre projet, j'ai réussi à créer SSLSocketFactory
à partir d'un KeyStore
et TrustManagerFactory
pour SSL poignée de main.
Comment puis-je utiliser SSLSocketFactory
code dans webservice client client SSL de communication réussie pour appeler le serveur.
OriginalL'auteur Muhammad Imran Tariq | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
Je suis assez sûr qu'elle va utiliser la valeur par défaut SSLContext. Vous pouvez changer cela avec SSLContext.setDefault().
Voici quelques d'autres valeurs pour la chaîne de paramètres ci-dessus.
Si vous avez besoin d'un contrôle plus complet, vous pouvez mettre en place votre propre sous-classe de SSLContext qui renvoie à votre propre mise en œuvre de SSLSocketFactory et jeu de SSLContext par défaut:
vous avez dit:"pretty sûr qu'il va utiliser la valeur par défaut SSLContext". Où je peux utiliser SSLContext? Pouvez-vous brièvement, s'il vous plaît.
Je suis en train de faire. Mais pour utiliser cette SSLContext dans le code client SOAP? Comme je l'ai indiqué à la question que je me suis bâtiment SSLSocketFactory de SSLContext.
Comme je l'ai dit, je pense que ce que vous définissez sur SSLContext.setDefault() est ce que SOAPConnectionFactory à utiliser. Si vous voulez que SSLContext pour utiliser votre SSLSocketFactory, vous avez besoin de sous-classe SSLContext. Le délégué de la mise en œuvre, j'ai suggéré ci-dessus devrait fonctionner.
C'est le point de mon premier commentaire. C'est une mauvaise conception d'API. Java de la mise en œuvre de SOAPConnection est HttpSOAPConnection. HttpSOAPConnection appels d'URL.openConnection. URL.openConnection utilise la valeur fournie dans l'URL.setURLStreamHandlerFactory. Ce paramètre est défini à HttpsURLConnectionImpl, qui appelle HttpsURLConnection, qui appelle SSLSocketFactory.getDefault(). C'est une grande chaîne de la plupart des méthodes statiques. Vous ne pouvez modifier l'échelle mondiale. En théorie, on pourrait se détendre que de tout ce gâchis et de définir votre propre URLStreamHandlerFactory. Faites-moi confiance, vous ne voulez pas le faire sauf si vous devez absolument.
OriginalL'auteur John Watts
Cette ligne de code ne fonctionnera pas en cas de SSL.
Créer trustmanager et keymanagers de ici.
Afin d'obtenir la réponse par la SSL de axis2 webservice vous avez besoin pour ouvrir des cours d'eau, étant donné ici
OriginalL'auteur Muhammad Imran Tariq
Salut si vous ajoutez ce code à votre classe webservice je pense que votre problème va se résoudre .
OriginalL'auteur Rusty Umt