-
Notifications
You must be signed in to change notification settings - Fork 14
/
SpringBoot2RestTemplate.md
55 lines (52 loc) · 2.08 KB
/
SpringBoot2RestTemplate.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Spring Boot 2 RestTemplate
## Step to do
- Create a Spring Boot project for Restful Web-Services.
- Create a Spring Boot project for Spring RestTemplate
- Create a simple Bussiness Model
- Implement RestController for Restful Web-Services
- Configure Restful-Web Services Security
- Config Spring RestTemplate Security
- Create a RestfulClient
- Make calls Restful Service by RestfulClient
- Build & Enjoy Results
### Config Spring RestTemplate Security
- For customize RestTemplate Client, we use constructure:
```
RestTemplate restTemplate = new RestTemplate(requestFactory);
public class RestTemplateBuilder {
public static RestTemplate securityRestTemplateBuilder(String username, String password) {
//...
}
}
```
- Configure `HttpClient` for Username/Password credential
```
private static HttpClient createHttpClient(String username, String password) {
CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(username, password);
provider.setCredentials(AuthScope.ANY, credentials);
HttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
return client;
}
```
- Config `ClientHttpRequestFactory` for Spring RestTemplate:
```
private static ClientHttpRequestFactory createRequestFactory(HttpClient httpClient) {
HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
clientHttpRequestFactory.setHttpClient(httpClient);
return clientHttpRequestFactory;
}
```
- Config Spring RestTemplate with `ClientHttpRequestFactory`:
```java
public class RestTemplateBuilder {
public static RestTemplate securityRestTemplateBuilder(String username, String password) {
HttpClient httpClient = createHttpClient(username, password);
ClientHttpRequestFactory requestFactory = createRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
return restTemplate;
}
}
```
## References
- [How to configure Spring RestTemplate Security](https://grokonez.com/java-integration/configure-spring-resttemplate-security)