97 ServerConfiguration serverConfiguration = token.getServerConfiguration();
99 if (serverConfiguration == null) {
100 logger.warn(
"No server configuration found.");
104 if (Strings.isNullOrEmpty(serverConfiguration.getUserInfoUri())) {
105 logger.warn(
"No userinfo endpoint, not fetching.");
109 String userInfoString = null;
111 if (serverConfiguration.getUserInfoTokenMethod() == null || serverConfiguration.getUserInfoTokenMethod().equals(UserInfoTokenMethod.HEADER)) {
112 RestTemplate restTemplate =
new RestTemplate(
factory) {
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()));
122 userInfoString = restTemplate.getForObject(serverConfiguration.getUserInfoUri(), String.class);
124 }
else if (serverConfiguration.getUserInfoTokenMethod().equals(UserInfoTokenMethod.FORM)) {
125 MultiValueMap<String, String> form =
new LinkedMultiValueMap<>();
126 form.add(
"access_token", token.getAccessTokenValue());
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());
134 RestTemplate restTemplate =
new RestTemplate(
factory);
135 userInfoString = restTemplate.getForObject(builder.toString(), String.class);
139 if (!Strings.isNullOrEmpty(userInfoString)) {
141 JsonObject userInfoJson =
new JsonParser().parse(userInfoString).getAsJsonObject();
143 UserInfo userInfo =
fromJson(userInfoJson);
148 throw new IllegalArgumentException(
"Unable to load user info");
static final Logger logger
Definition: UserInfoFetcher.java:61
HttpComponentsClientHttpRequestFactory factory
Definition: UserInfoFetcher.java:88
UserInfo fromJson(JsonObject userInfoJson)
Definition: UserInfoFetcher.java:154