mitreid-connect
公開メンバ関数 | 関数 | 非公開変数類 | 全メンバ一覧
org.mitre.openid.connect.client.UserInfoFetcher.UserInfoLoader クラス
org.mitre.openid.connect.client.UserInfoFetcher.UserInfoLoader の継承関係図
Inheritance graph
org.mitre.openid.connect.client.UserInfoFetcher.UserInfoLoader 連携図
Collaboration graph

公開メンバ関数

UserInfo load (final PendingOIDCAuthenticationToken token) throws URISyntaxException
 

関数

 UserInfoLoader (HttpClient httpClient)
 

非公開変数類

HttpComponentsClientHttpRequestFactory factory
 

詳解

構築子と解体子

◆ UserInfoLoader()

org.mitre.openid.connect.client.UserInfoFetcher.UserInfoLoader.UserInfoLoader ( HttpClient  httpClient)
inlinepackage
90  {
91  this.factory = new HttpComponentsClientHttpRequestFactory(httpClient);
92  }
HttpComponentsClientHttpRequestFactory factory
Definition: UserInfoFetcher.java:88

関数詳解

◆ load()

UserInfo org.mitre.openid.connect.client.UserInfoFetcher.UserInfoLoader.load ( final PendingOIDCAuthenticationToken  token) throws URISyntaxException
inline
95  {
96 
97  ServerConfiguration serverConfiguration = token.getServerConfiguration();
98 
99  if (serverConfiguration == null) {
100  logger.warn("No server configuration found.");
101  return null;
102  }
103 
104  if (Strings.isNullOrEmpty(serverConfiguration.getUserInfoUri())) {
105  logger.warn("No userinfo endpoint, not fetching.");
106  return null;
107  }
108 
109  String userInfoString = null;
110 
111  if (serverConfiguration.getUserInfoTokenMethod() == null || serverConfiguration.getUserInfoTokenMethod().equals(UserInfoTokenMethod.HEADER)) {
112  RestTemplate restTemplate = new RestTemplate(factory) {
113 
114  @Override
115  protected ClientHttpRequest createRequest(URI url, HttpMethod method) throws IOException {
116  ClientHttpRequest httpRequest = super.createRequest(url, method);
117  httpRequest.getHeaders().add("Authorization", String.format("Bearer %s", token.getAccessTokenValue()));
118  return httpRequest;
119  }
120  };
121 
122  userInfoString = restTemplate.getForObject(serverConfiguration.getUserInfoUri(), String.class);
123 
124  } else if (serverConfiguration.getUserInfoTokenMethod().equals(UserInfoTokenMethod.FORM)) {
125  MultiValueMap<String, String> form = new LinkedMultiValueMap<>();
126  form.add("access_token", token.getAccessTokenValue());
127 
128  RestTemplate restTemplate = new RestTemplate(factory);
129  userInfoString = restTemplate.postForObject(serverConfiguration.getUserInfoUri(), form, String.class);
130  } else if (serverConfiguration.getUserInfoTokenMethod().equals(UserInfoTokenMethod.QUERY)) {
131  URIBuilder builder = new URIBuilder(serverConfiguration.getUserInfoUri());
132  builder.setParameter("access_token", token.getAccessTokenValue());
133 
134  RestTemplate restTemplate = new RestTemplate(factory);
135  userInfoString = restTemplate.getForObject(builder.toString(), String.class);
136  }
137 
138 
139  if (!Strings.isNullOrEmpty(userInfoString)) {
140 
141  JsonObject userInfoJson = new JsonParser().parse(userInfoString).getAsJsonObject();
142 
143  UserInfo userInfo = fromJson(userInfoJson);
144 
145  return userInfo;
146  } else {
147  // didn't get anything throw exception
148  throw new IllegalArgumentException("Unable to load user info");
149  }
150 
151  }
static final Logger logger
Definition: UserInfoFetcher.java:61
HttpComponentsClientHttpRequestFactory factory
Definition: UserInfoFetcher.java:88
UserInfo fromJson(JsonObject userInfoJson)
Definition: UserInfoFetcher.java:154

メンバ詳解

◆ factory

HttpComponentsClientHttpRequestFactory org.mitre.openid.connect.client.UserInfoFetcher.UserInfoLoader.factory
private

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