1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.amber.oauth2.client;
23
24 import java.util.HashMap;
25 import java.util.Map;
26
27 import org.apache.amber.oauth2.client.request.OAuthClientRequest;
28 import org.apache.amber.oauth2.client.response.OAuthAccessTokenResponse;
29 import org.apache.amber.oauth2.client.response.OAuthClientResponse;
30 import org.apache.amber.oauth2.client.response.OAuthJSONAccessTokenResponse;
31 import org.apache.amber.oauth2.common.OAuth;
32 import org.apache.amber.oauth2.common.exception.OAuthProblemException;
33 import org.apache.amber.oauth2.common.exception.OAuthSystemException;
34
35
36
37
38
39
40
41
42 public class OAuthClient {
43
44 protected HttpClient httpClient;
45
46 public OAuthClient(HttpClient oauthClient) {
47 this.httpClient = oauthClient;
48 }
49
50 public <T extends OAuthAccessTokenResponse> T accessToken(
51 OAuthClientRequest request,
52 Class<T> responseClass)
53 throws OAuthSystemException, OAuthProblemException {
54
55 return accessToken(request, OAuth.HttpMethod.POST, responseClass);
56 }
57
58 public <T extends OAuthAccessTokenResponse> T accessToken(
59 OAuthClientRequest request, String requestMethod, Class<T> responseClass)
60 throws OAuthSystemException, OAuthProblemException {
61
62 Map<String, String> headers = new HashMap<String, String>();
63 headers.put(OAuth.HeaderType.CONTENT_TYPE, OAuth.ContentType.URL_ENCODED);
64
65 return httpClient.execute(request, headers, requestMethod, responseClass);
66 }
67
68 public OAuthJSONAccessTokenResponse accessToken(
69 OAuthClientRequest request)
70 throws OAuthSystemException, OAuthProblemException {
71 return accessToken(request, OAuthJSONAccessTokenResponse.class);
72 }
73
74 public OAuthJSONAccessTokenResponse accessToken(
75 OAuthClientRequest request, String requestMethod)
76 throws OAuthSystemException, OAuthProblemException {
77 return accessToken(request, requestMethod, OAuthJSONAccessTokenResponse.class);
78 }
79
80 public <T extends OAuthClientResponse> T resource(OAuthClientRequest request, String requestMethod,Class<T> responseClass) throws OAuthSystemException, OAuthProblemException{
81 return httpClient.execute(request, null, requestMethod, responseClass);
82 }
83
84 public void shutdown() {
85 httpClient.shutdown();
86 }
87 }