1 package org.springframework.security.oauth.consumer.client;
2
3 import org.springframework.http.client.ClientHttpRequestFactory;
4 import org.springframework.http.client.SimpleClientHttpRequestFactory;
5 import org.springframework.security.oauth.consumer.OAuthConsumerSupport;
6 import org.springframework.security.oauth.consumer.ProtectedResourceDetails;
7 import org.springframework.web.client.RestTemplate;
8
9
10
11
12
13
14 public class OAuthRestTemplate extends RestTemplate {
15
16 private final ProtectedResourceDetails resource;
17 private OAuthConsumerSupport support = new CoreOAuthConsumerSupport();
18
19 public OAuthRestTemplate(ProtectedResourceDetails resource) {
20 this(new SimpleClientHttpRequestFactory(), resource);
21 }
22
23 public OAuthRestTemplate(ClientHttpRequestFactory requestFactory, ProtectedResourceDetails resource) {
24 super();
25 if (resource == null) {
26 throw new IllegalArgumentException("An OAuth resource must be supplied.");
27 }
28 if (support == null) {
29 throw new IllegalArgumentException("OAuth support must be supplied.");
30 }
31
32 this.resource = resource;
33 setRequestFactory(requestFactory);
34 }
35
36 @Override
37 public void setRequestFactory(ClientHttpRequestFactory requestFactory) {
38 if (!(requestFactory instanceof OAuthClientHttpRequestFactory)) {
39 requestFactory = new OAuthClientHttpRequestFactory(requestFactory, getResource(), getSupport());
40 }
41 super.setRequestFactory(requestFactory);
42 }
43
44
45 public ProtectedResourceDetails getResource() {
46 return resource;
47 }
48
49
50
51
52
53
54 public OAuthConsumerSupport getSupport() {
55 return support;
56 }
57
58
59
60
61
62
63 public void setSupport(OAuthConsumerSupport support) {
64 this.support = support;
65 }
66
67 }