Quelle est la bonne façon d'envoyer un certificat client avec chaque demande faite par le resttemplate au printemps?
je veux consommer un service REST avec mon ressort de l'application. Pour accéder à ce service, j'ai un client certificat auto-signé et de de .jks format) pour l'autorisation.
Quelle est la bonne façon de s'authentifier auprès du service rest?
C'est ma demande:
public List<Info> getInfo() throws RestClientException, URISyntaxException {
HttpEntity<?> httpEntity = new HttpEntity<>(null, new HttpHeaders());
ResponseEntity<Info[]> resp = restOperations.exchange(
new URI(BASE_URL + "/Info"), HttpMethod.GET,
httpEntity, Info[].class);
return Arrays.asList(resp.getBody());
}
OriginalL'auteur Nas3nmann | 2017-08-16
Vous devez vous connecter pour publier un commentaire.
Ici est un exemple de comment faire cela en utilisant RestTemplate et Apache HttpClient
Vous devez définir votre propre
RestTemplate
avec configuré SSL contexte:Maintenant tous les appels effectués par ce modèle sera signé avec
cert.jks
.Note: Vous devez mettre
cert.jks
dans votre classpathsetRequestFactory
sur unRestTemplate
objet directement, au lieu d'avoir à utiliser leRestTemplateBuilder
OriginalL'auteur Ruslan Poshuk
Ou vous pouvez simplement importer le certificat à votre Jdk cacerts, et tous les clients HTTP à l'aide de la jdk (reste modèle dans votre cas) va utiliser le certificat pour faire l'appel RESTE.
P. S: N'oubliez pas de redémarrer votre serveur après le succès de l'importation. Mot de passe par défaut pour le fichier de clés -
changeit
OriginalL'auteur Abhijeet