In two previous blog posts I have touched on Spring Cloud Ribbon basics and some advanced customizations, continuing with the same example, assuming that I have a configuration along these lines:
sampleservice: ribbon: listOfServers: someserver:80 ReadTimeout: 5000 MaxAutoRetries: 2
Given this configuration, I can call the service this way:
public class RestTemplateSample { @Autowired private RestTemplate restTemplate; @Override public MessageAcknowledgement sendMessage(Message message) { String pongServiceUrl = "http://sampleservice/message"; HttpEntity<Message> requestEntity = new HttpEntity<>(message); ResponseEntity<MessageAcknowledgement> response = this.restTemplate.exchange(pongServiceUrl, HttpMethod.POST, requestEntity, MessageAcknowledgement.class, Maps.newHashMap()); return response.getBody(); } }
So now if the remote service were secured, the first approach and likely the preferred way is actually quite simple, just add an additional configuration to the "named" client to indicate that the remote service is secure, note that the port also has to be appropriately specified.
sampleservice: ribbon: listOfServers: someserver:443 ReadTimeout: 5000 MaxAutoRetries: 2 IsSecure: true
The second approach that also works is to simply change the url to indicate that you are calling a https endpoint, this time the "IsSecure" configuration is not required:
public class RestTemplateSample { @Autowired private RestTemplate restTemplate; @Override public MessageAcknowledgement sendMessage(Message message) { String pongServiceUrl = "https://sampleservice/message"; HttpEntity<Message> requestEntity = new HttpEntity<>(message); ResponseEntity<MessageAcknowledgement> response = this.restTemplate.exchange(pongServiceUrl, HttpMethod.POST, requestEntity, MessageAcknowledgement.class, Maps.newHashMap()); return response.getBody(); } }
No comments:
Post a Comment