gluu
公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 非公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
org.xdi.oxauth.client.ClientInfoClient クラス
org.xdi.oxauth.client.ClientInfoClient の継承関係図
Inheritance graph
org.xdi.oxauth.client.ClientInfoClient 連携図
Collaboration graph

公開メンバ関数

 ClientInfoClient (String url)
 
String getHttpMethod ()
 
ClientInfoResponse execClientInfo (String accessToken)
 
ClientInfoResponse exec ()
 
ClientInfoResponse exec (ClientExecutor p_executor)
 
String getUrl ()
 
void setUrl (String url)
 
T getRequest ()
 
void setRequest (T request)
 
V getResponse ()
 
void setResponse (V response)
 
ClientExecutor getExecutor ()
 
void setExecutor (ClientExecutor executor)
 
String getRequestAsString ()
 
String getResponseAsString ()
 
void closeConnection ()
 
List< Cookie > getCookies ()
 
Map< String, String > getHeaders ()
 

静的公開メンバ関数

static void putAllFormParameters (ClientRequest p_clientRequest, BaseRequest p_request)
 

限定公開メンバ関数

void addReqParam (String p_key, HasParamName p_value)
 
void addReqParam (String p_key, String p_value)
 
void initClientRequest ()
 

限定公開変数類

T request
 
V response
 
ClientRequest clientRequest
 
ClientResponse< String > clientResponse
 
ClientExecutor executor
 

非公開メンバ関数

ClientInfoResponse _exec ()
 

静的非公開変数類

static final Logger LOG = Logger.getLogger(ClientInfoClient.class)
 

詳解

Encapsulates functionality to make client info request calls to an authorization server via REST Services.

著者
Javier Rojas Blum
バージョン
December 26, 2016

構築子と解体子

◆ ClientInfoClient()

org.xdi.oxauth.client.ClientInfoClient.ClientInfoClient ( String  url)
inline

Constructs an Client Info client by providing a REST url where the service is located.

引数
urlThe REST Service location.
40  {
41  super(url);
42  }

関数詳解

◆ _exec()

ClientInfoResponse org.xdi.oxauth.client.ClientInfoClient._exec ( )
inlineprivate

Executes the call to the REST Service and processes the response.

戻り値
The service response.
85  {
86  // Prepare request parameters
87  clientRequest.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED);
88  clientRequest.setHttpMethod(getHttpMethod());
89 
90  if (getRequest().getAuthorizationMethod() == null
91  || getRequest().getAuthorizationMethod() == AuthorizationMethod.AUTHORIZATION_REQUEST_HEADER_FIELD) {
92  if (StringUtils.isNotBlank(getRequest().getAccessToken())) {
93  clientRequest.header("Authorization", "Bearer " + getRequest().getAccessToken());
94  }
95  } else if (getRequest().getAuthorizationMethod() == AuthorizationMethod.FORM_ENCODED_BODY_PARAMETER) {
96  if (StringUtils.isNotBlank(getRequest().getAccessToken())) {
97  clientRequest.formParameter("access_token", getRequest().getAccessToken());
98  }
99  } else if (getRequest().getAuthorizationMethod() == AuthorizationMethod.URL_QUERY_PARAMETER) {
100  if (StringUtils.isNotBlank(getRequest().getAccessToken())) {
101  clientRequest.queryParameter("access_token", getRequest().getAccessToken());
102  }
103  }
104 
105  // Call REST Service and handle response
106  try {
107  if (getRequest().getAuthorizationMethod() == null
108  || getRequest().getAuthorizationMethod() == AuthorizationMethod.AUTHORIZATION_REQUEST_HEADER_FIELD
109  || getRequest().getAuthorizationMethod() == AuthorizationMethod.FORM_ENCODED_BODY_PARAMETER) {
110  clientResponse = clientRequest.post(String.class);
111  } else { //AuthorizationMethod.URL_QUERY_PARAMETER
112  clientResponse = clientRequest.get(String.class);
113  }
114 
115  int status = clientResponse.getStatus();
116 
117  setResponse(new ClientInfoResponse(status));
118 
119  String entity = clientResponse.getEntity(String.class);
120  getResponse().setEntity(entity);
121  getResponse().setHeaders(clientResponse.getMetadata());
122  if (StringUtils.isNotBlank(entity)) {
123  try {
124  JSONObject jsonObj = new JSONObject(entity);
125 
126  if (jsonObj.has("error")) {
127  getResponse().setErrorType(UserInfoErrorResponseType.fromString(jsonObj.getString("error")));
128  jsonObj.remove("error");
129  }
130  if (jsonObj.has("error_description")) {
131  getResponse().setErrorDescription(jsonObj.getString("error_description"));
132  jsonObj.remove("error_description");
133  }
134  if (jsonObj.has("error_uri")) {
135  getResponse().setErrorUri(jsonObj.getString("error_uri"));
136  jsonObj.remove("error_uri");
137  }
138 
139  for (Iterator<String> iterator = jsonObj.keys(); iterator.hasNext(); ) {
140  String key = iterator.next();
141  List<String> values = new ArrayList<String>();
142 
143  JSONArray jsonArray = jsonObj.optJSONArray(key);
144  if (jsonArray != null) {
145  for (int i = 0; i < jsonArray.length(); i++) {
146  String value = jsonArray.optString(i);
147  if (value != null) {
148  values.add(value);
149  }
150  }
151  } else {
152  String value = jsonObj.optString(key);
153  if (value != null) {
154  values.add(value);
155  }
156  }
157 
158  getResponse().getClaims().put(key, values);
159  }
160  } catch (JSONException e) {
161  e.printStackTrace();
162  }
163  }
164  } catch (Exception e) {
165  LOG.error(e.getMessage(), e);
166  } finally {
167  closeConnection();
168  }
169 
170  return getResponse();
171  }
String getHttpMethod()
Definition: ClientInfoClient.java:45
ClientResponse< String > clientResponse
Definition: BaseClient.java:43
static final Logger LOG
Definition: ClientInfoClient.java:33
void setResponse(V response)
Definition: BaseClient.java:76

◆ addReqParam() [1/2]

void org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.addReqParam ( String  p_key,
HasParamName  p_value 
)
inlineprotectedinherited
88  {
89  if (p_value != null) {
90  addReqParam(p_key, p_value.getParamName());
91  }
92  }
void addReqParam(String p_key, HasParamName p_value)
Definition: BaseClient.java:88

◆ addReqParam() [2/2]

void org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.addReqParam ( String  p_key,
String  p_value 
)
inlineprotectedinherited
94  {
95  if (Util.allNotBlank(p_key, p_value)) {
96  if (request.getAuthorizationMethod() == AuthorizationMethod.FORM_ENCODED_BODY_PARAMETER) {
97  clientRequest.formParameter(p_key, p_value);
98  } else {
99  clientRequest.queryParameter(p_key, p_value);
100  }
101  }
102  }

◆ closeConnection()

void org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.closeConnection ( )
inlineinherited
239  {
240  try {
241  if (clientResponse != null) {
242  clientResponse.releaseConnection();
243  }
244  if (clientRequest != null && clientRequest.getExecutor() != null) {
245  clientRequest.getExecutor().close();
246  }
247  } catch (Exception e) {
248  LOG.error(e.getMessage(), e);
249  }
250  }
static final Logger LOG
Definition: BaseClient.java:36
ClientResponse< String > clientResponse
Definition: BaseClient.java:43

◆ exec() [1/2]

ClientInfoResponse org.xdi.oxauth.client.ClientInfoClient.exec ( )
inline
67  {
69  return _exec();
70  }
ClientInfoResponse _exec()
Definition: ClientInfoClient.java:85

◆ exec() [2/2]

ClientInfoResponse org.xdi.oxauth.client.ClientInfoClient.exec ( ClientExecutor  p_executor)
inline
74  {
75  clientRequest = new ClientRequest(getUrl(), p_executor);
76  return _exec();
77  }
ClientInfoResponse _exec()
Definition: ClientInfoClient.java:85

◆ execClientInfo()

ClientInfoResponse org.xdi.oxauth.client.ClientInfoClient.execClientInfo ( String  accessToken)
inline

Executes the call to the REST Service and processes the response.

引数
accessTokenThe access token obtained from the oxAuth authorization request.
戻り値
The service response.
61  {
62  setRequest(new ClientInfoRequest(accessToken));
63 
64  return exec();
65  }
ClientInfoResponse exec()
Definition: ClientInfoClient.java:67

◆ getCookies()

List<Cookie> org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.getCookies ( )
inlineinherited
254  {
255  return cookies;
256  }
final List< Cookie > cookies
Definition: BaseClient.java:44

◆ getExecutor()

ClientExecutor org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.getExecutor ( )
inlineinherited
80  {
81  return executor;
82  }

◆ getHeaders()

Map<String, String> org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.getHeaders ( )
inlineinherited
258  {
259  return headers;
260  }
final Map< String, String > headers
Definition: BaseClient.java:45

◆ getHttpMethod()

String org.xdi.oxauth.client.ClientInfoClient.getHttpMethod ( )
inline
45  {
46  if (getRequest().getAuthorizationMethod() == null
47  || getRequest().getAuthorizationMethod() == AuthorizationMethod.AUTHORIZATION_REQUEST_HEADER_FIELD
48  || getRequest().getAuthorizationMethod() == AuthorizationMethod.FORM_ENCODED_BODY_PARAMETER) {
49  return HttpMethod.POST;
50  } else { // AuthorizationMethod.URL_QUERY_PARAMETER
51  return HttpMethod.GET;
52  }
53  }

◆ getRequest()

T org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.getRequest ( )
inlineinherited
64  {
65  return request;
66  }

◆ getRequestAsString()

String org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.getRequestAsString ( )
inlineinherited
115  {
116  StringBuilder sb = new StringBuilder();
117 
118  try {
119  URL theUrl = new URL(url);
120 
121  if (getHttpMethod().equals(HttpMethod.POST)) {
122  sb.append(HttpMethod.POST).append(" ").append(theUrl.getPath()).append(" HTTP/1.1");
123  if (StringUtils.isNotBlank(request.getContentType())) {
124  sb.append("\n");
125  sb.append("Content-Type: ").append(request.getContentType());
126  }
127  if (StringUtils.isNotBlank(request.getMediaType())) {
128  sb.append("\n");
129  sb.append("Accept: ").append(request.getMediaType());
130  }
131  sb.append("\n");
132  sb.append("Host: ").append(theUrl.getHost());
133 
134  if (request instanceof AuthorizationRequest) {
135  AuthorizationRequest authorizationRequest = (AuthorizationRequest) request;
136  if (authorizationRequest.isUseNoRedirectHeader()) {
137  sb.append("\n");
138  sb.append("X-Gluu-NoRedirect: true");
139  }
140  }
141  if (request.getAuthorizationMethod() == null) {
142  if (request.getAuthenticationMethod() == null
143  || request.getAuthenticationMethod() == AuthenticationMethod.CLIENT_SECRET_BASIC) {
144  if (request.hasCredentials()) {
145  String encodedCredentials = request.getEncodedCredentials();
146  sb.append("\n");
147  sb.append("Authorization: Basic ").append(encodedCredentials);
148  }
149  }
150  } else if (request.getAuthorizationMethod() == AuthorizationMethod.AUTHORIZATION_REQUEST_HEADER_FIELD) {
151  if (request instanceof UserInfoRequest) {
152  String accessToken = ((UserInfoRequest) request).getAccessToken();
153  sb.append("\n");
154  sb.append("Authorization: Bearer ").append(accessToken);
155  }
156  }
157 
158  sb.append("\n");
159  sb.append("\n");
160  sb.append(request.getQueryString());
161  } else if (getHttpMethod().equals(HttpMethod.GET)) {
162  sb.append("GET ").append(theUrl.getPath());
163  if (StringUtils.isNotBlank(request.getQueryString())) {
164  sb.append("?").append(request.getQueryString());
165  }
166  sb.append(" HTTP/1.1");
167  sb.append("\n");
168  sb.append("Host: ").append(theUrl.getHost());
169 
170  if (request instanceof AuthorizationRequest) {
171  AuthorizationRequest authorizationRequest = (AuthorizationRequest) request;
172  if (authorizationRequest.isUseNoRedirectHeader()) {
173  sb.append("\n");
174  sb.append("X-Gluu-NoRedirect: true");
175  }
176  }
177  if (request.getAuthorizationMethod() == null) {
178  if (request.hasCredentials()) {
179  String encodedCredentials = request.getEncodedCredentials();
180  sb.append("\n");
181  sb.append("Authorization: Basic ").append(encodedCredentials);
182  } else if (request instanceof RegisterRequest) {
183  RegisterRequest r = (RegisterRequest) request;
184  String registrationAccessToken = r.getRegistrationAccessToken();
185  sb.append("\n");
186  sb.append("Authorization: Bearer ").append(registrationAccessToken);
187  }
188  } else if (request.getAuthorizationMethod() == AuthorizationMethod.AUTHORIZATION_REQUEST_HEADER_FIELD) {
189  if (request instanceof UserInfoRequest) {
190  String accessToken = ((UserInfoRequest) request).getAccessToken();
191  sb.append("\n");
192  sb.append("Authorization: Bearer ").append(accessToken);
193  }
194  }
195  }
196  } catch (MalformedURLException e) {
197  LOG.error(e.getMessage(), e);
198  }
199 
200  return sb.toString();
201  }
static final Logger LOG
Definition: BaseClient.java:36

◆ getResponse()

V org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.getResponse ( )
inlineinherited
72  {
73  return response;
74  }

◆ getResponseAsString()

String org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.getResponseAsString ( )
inlineinherited
203  {
204  StringBuilder sb = new StringBuilder();
205 
206  if (response != null) {
207  sb.append("HTTP/1.1 ").append(response.getStatus());
208  if (response.getHeaders() != null) {
209  for (String key : response.getHeaders().keySet()) {
210  sb.append("\n")
211  .append(key)
212  .append(": ")
213  .append(response.getHeaders().get(key).get(0));
214  }
215  }
216  if (response.getEntity() != null) {
217  sb.append("\n");
218  sb.append("\n");
219  sb.append(response.getEntity());
220  }
221  }
222  return sb.toString();
223  }

◆ getUrl()

String org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.getUrl ( )
inlineinherited
56  {
57  return url;
58  }

◆ initClientRequest()

void org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.initClientRequest ( )
inlineprotectedinherited
225  {
226  if (this.executor == null) {
227  this.clientRequest = new ClientRequest(getUrl());
228  } else {
229  this.clientRequest = new ClientRequest(getUrl(), this.executor);
230  }
231  for (Cookie cookie : cookies) {
232  clientRequest.cookie(cookie);
233  }
234  for (Map.Entry<String, String> headerEntry : headers.entrySet()) {
235  clientRequest.header(headerEntry.getKey(), headerEntry.getValue());
236  }
237  }
final List< Cookie > cookies
Definition: BaseClient.java:44
final Map< String, String > headers
Definition: BaseClient.java:45

◆ putAllFormParameters()

static void org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.putAllFormParameters ( ClientRequest  p_clientRequest,
BaseRequest  p_request 
)
inlinestaticinherited
104  {
105  if (p_clientRequest != null && p_request != null) {
106  final Map<String, String> parameters = p_request.getParameters();
107  if (parameters != null && !parameters.isEmpty()) {
108  for (Map.Entry<String, String> e : parameters.entrySet()) {
109  p_clientRequest.formParameter(e.getKey(), e.getValue());
110  }
111  }
112  }
113  }

◆ setExecutor()

void org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.setExecutor ( ClientExecutor  executor)
inlineinherited
84  {
85  this.executor = executor;
86  }

◆ setRequest()

void org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.setRequest ( T  request)
inlineinherited
68  {
69  this.request = request;
70  }

◆ setResponse()

void org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.setResponse ( V  response)
inlineinherited
76  {
77  this.response = response;
78  }

◆ setUrl()

void org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.setUrl ( String  url)
inlineinherited
60  {
61  this.url = url;
62  }

メンバ詳解

◆ clientRequest

ClientRequest org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.clientRequest
protectedinherited

◆ clientResponse

ClientResponse<String> org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.clientResponse
protectedinherited

◆ executor

ClientExecutor org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.executor
protectedinherited

◆ LOG

final Logger org.xdi.oxauth.client.ClientInfoClient.LOG = Logger.getLogger(ClientInfoClient.class)
staticprivate

◆ request

T org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.request
protectedinherited

◆ response

V org.xdi.oxauth.client.BaseClient< T extends BaseRequest, V extends BaseResponse >.response
protectedinherited

このクラス詳解は次のファイルから抽出されました: