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

公開メンバ関数

 JwkClient (String url)
 
String getHttpMethod ()
 
JwkResponse exec ()
 
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 RSAPublicKey getRSAPublicKey (String jwkSetUri, String keyId)
 
static RSAPublicKey getRSAPublicKey (String jwkSetUri, String keyId, ClientExecutor clientExecutor)
 
static ECDSAPublicKey getECDSAPublicKey (String jwkSetUrl, String keyId)
 
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
 

静的非公開変数類

static final String mediaType = MediaType.APPLICATION_JSON
 

詳解

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

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

構築子と解体子

◆ JwkClient()

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

Constructs a JSON Web Key (JWK) client by providing a REST url where the validate token service is located.

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

関数詳解

◆ 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  }
ClientRequest clientRequest
Definition: BaseClient.java:42

◆ 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
ClientRequest clientRequest
Definition: BaseClient.java:42

◆ exec()

JwkResponse org.xdi.oxauth.client.JwkClient.exec ( )
inline

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

戻り値
The service response.
54  {
55  if (getRequest() == null) {
56  setRequest(new JwkRequest());
57  }
58 
59  // Prepare request parameters
61  if (getRequest().hasCredentials()) {
62  String encodedCredentials = getRequest().getEncodedCredentials();
63  clientRequest.header("Authorization", "Basic " + encodedCredentials);
64  }
65  clientRequest.accept(mediaType);
66  clientRequest.setHttpMethod(getHttpMethod());
67 
68  // Call REST Service and handle response
69  try {
70  clientResponse = clientRequest.get(String.class);
71  int status = clientResponse.getStatus();
72 
73  setResponse(new JwkResponse(status));
74  getResponse().setHeaders(clientResponse.getMetadata());
75 
76  String entity = clientResponse.getEntity(String.class);
77  getResponse().setEntity(entity);
78  if (StringUtils.isNotBlank(entity)) {
79  JSONObject jsonObj = new JSONObject(entity);
80  if (jsonObj.has(JSON_WEB_KEY_SET)) {
81  JSONWebKeySet jwks = JSONWebKeySet.fromJSONObject(jsonObj);
82  getResponse().setJwks(jwks);
83  }
84  }
85  } catch (Exception e) {
86  e.printStackTrace();
87  } finally {
89  }
90 
91  return getResponse();
92  }
static final String mediaType
Definition: JwkClient.java:31
void closeConnection()
Definition: BaseClient.java:239
String getHttpMethod()
Definition: JwkClient.java:44
ClientResponse< String > clientResponse
Definition: BaseClient.java:43
ClientRequest clientRequest
Definition: BaseClient.java:42
void setRequest(T request)
Definition: BaseClient.java:68
void setResponse(V response)
Definition: BaseClient.java:76
void initClientRequest()
Definition: BaseClient.java:225

◆ 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

◆ getECDSAPublicKey()

static ECDSAPublicKey org.xdi.oxauth.client.JwkClient.getECDSAPublicKey ( String  jwkSetUrl,
String  keyId 
)
inlinestatic
114  {
115  ECDSAPublicKey publicKey = null;
116 
117  JwkClient jwkClient = new JwkClient(jwkSetUrl);
118  JwkResponse jwkResponse = jwkClient.exec();
119  if (jwkResponse != null && jwkResponse.getStatus() == 200) {
120  PublicKey pk = jwkResponse.getPublicKey(keyId);
121  if (pk instanceof ECDSAPublicKey) {
122  publicKey = (ECDSAPublicKey) pk;
123  }
124  }
125 
126  return publicKey;
127  }
JwkClient(String url)
Definition: JwkClient.java:39

◆ getExecutor()

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

◆ 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.JwkClient.getHttpMethod ( )
inline
44  {
45  return HttpMethod.GET;
46  }

◆ 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  }

◆ getRSAPublicKey() [1/2]

static RSAPublicKey org.xdi.oxauth.client.JwkClient.getRSAPublicKey ( String  jwkSetUri,
String  keyId 
)
inlinestatic
94  {
95  return getRSAPublicKey(jwkSetUri, keyId, null);
96  }
static RSAPublicKey getRSAPublicKey(String jwkSetUri, String keyId)
Definition: JwkClient.java:94

◆ getRSAPublicKey() [2/2]

static RSAPublicKey org.xdi.oxauth.client.JwkClient.getRSAPublicKey ( String  jwkSetUri,
String  keyId,
ClientExecutor  clientExecutor 
)
inlinestatic
98  {
99  RSAPublicKey publicKey = null;
100 
101  JwkClient jwkClient = new JwkClient(jwkSetUri);
102  jwkClient.setExecutor(clientExecutor);
103  JwkResponse jwkResponse = jwkClient.exec();
104  if (jwkResponse != null && jwkResponse.getStatus() == 200) {
105  PublicKey pk = jwkResponse.getPublicKey(keyId);
106  if (pk instanceof RSAPublicKey) {
107  publicKey = (RSAPublicKey) pk;
108  }
109  }
110 
111  return publicKey;
112  }
JwkClient(String url)
Definition: JwkClient.java:39

◆ 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
String getUrl()
Definition: BaseClient.java:56
ClientExecutor executor
Definition: BaseClient.java:47
final Map< String, String > headers
Definition: BaseClient.java:45
ClientRequest clientRequest
Definition: BaseClient.java:42

◆ 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  }
ClientExecutor executor
Definition: BaseClient.java:47

◆ 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

◆ mediaType

final String org.xdi.oxauth.client.JwkClient.mediaType = MediaType.APPLICATION_JSON
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

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