Comment appeler HTTPS services web restful à l'aide de Printemps RestTemplate
Je suis en utilisant Tomcat7, Printemps-cadre pour les services web ReST.
Je suis en train de faire appel à une https service web à l'aide de Printemps RestTemplate.
J'obtiens l'erreur suivante:
impossible de trouver le chemin de certification valide à la demande de la cible; imbriqué
exception javax.net.le protocole ssl.SSLHandshakeException:
soleil.de sécurité.programme de validation.ValidatorException: PKIX chemin d'accès du bâtiment a échoué:
soleil.de sécurité.fournisseur de.certpath.SunCertPathBuilderException: impossible de
trouver la validité de la certification chemin demandé cible
- Je vérifier en ligne sur stackoverflow. J'ai essayé l'exemple de code à partir de l'url:
L'accès Https Reste de Service à l'aide de Printemps RestTemplate
Je ne pouvais pas le faire fonctionner.
Quelqu'un peut-il me dire s'appuyant sur le code ci-dessous de quoi ai-je besoin de changer?
Aussi quelqu'un peut-il me dire ou me fournir le pom.xml fichier qui bibliothèques java aurais-je besoin?
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.journaldev.spring.controller.EmpRestURIConstants;
import com.journaldev.spring.model.CostControlPost;
import com.journaldev.spring.model.Employee;
import com.journaldev.spring.model.RfxForUpdate;
import static org.junit.Assert.*;
import org.apache.commons.codec.binary.Base64;
import javax.net.ssl.*;
import java.io.*;
import java.security.KeyStore;
import java.security.MessageDigest;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
public class TestExample2
{
public static final String SERVER_LIST="https://abc/sourcing/testServices";
@Test
public void testGetListOfServiceNames()
{
try
{
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(SERVER_LIST,HttpMethod.GET,null,String.class);
assertNotNull(response);
}
catch(Exception e)
{
System.out.println("e:"+e.getMessage());
}
}
}
OriginalL'auteur user1272936 | 2017-02-19
Vous devez vous connecter pour publier un commentaire.
Soit vous avez besoin d'avoir des certificats dans votre fichier de clés ou vous pouvez accepter tous les certificats (hors ignorer la validation de certificat)
De sorte que vous pouvez re-définir le haricot de repos modèle
Vous ne devriez pas besoin de plus de pots, sauf pour le noyau d'apache, le client et les dépendances.
Ce sont les importations: javax.net.le protocole ssl.SSLContext, org.apache.http.conn.le protocole ssl.SSLConnectionSocketFactory, org.apache.http.conn.le protocole ssl.TrustStrategy. Juste de l'utilisation du client http apache
J'ai suivi le manuel et ajoutez ce code, mais j'ai fait face à d'erreur:
javax.net.ssl.SSLPeerUnverifiedException: Certificate for <192.168.1.2> doesn't match any of the subject alternative names:[]
Hey@Dariush j'ai trouvé un autre post, stackoverflow.com/questions/34655031/... j'ai probablement raté quelque chose
Gardez à l'esprit que cette réponse va casser tout autre ssl-dépendante la mise en œuvre du client que vous pourriez avoir dans votre composant.
OriginalL'auteur user1211