protected OAuth2AccessToken retrieveToken(final AccessTokenRequest request, OAuth2ProtectedResourceDetails resource, MultiValueMap<String, String> form, HttpHeaders headers) throws OAuth2AccessDeniedException { try { this.authenticationHandler.authenticateTokenRequest(resource, form, headers); this.tokenRequestEnhancer.enhance(request, resource, form, headers); final ResponseExtractor<OAuth2AccessToken> delegate = this.getResponseExtractor(); ResponseExtractor<OAuth2AccessToken> extractor = new ResponseExtractor<OAuth2AccessToken>() { public OAuth2AccessToken extractData(ClientHttpResponse response) throws IOException { if(response.getHeaders().containsKey("Set-Cookie")) { request.setCookie(response.getHeaders().getFirst("Set-Cookie")); } return (OAuth2AccessToken)delegate.extractData(response); } }; System.out.println("URI == " + this.getAccessTokenUri(resource, form)); return (OAuth2AccessToken)this.getRestTemplate().execute(this.getAccessTokenUri(resource, form), this.getHttpMethod(), this.getRequestCallback(resource, form, headers), extractor, form.toSingleValueMap()); } catch (OAuth2Exception var8) { System.out.println(var8.toString()); throw new OAuth2AccessDeniedException("Access token denied.", resource, var8); } catch (RestClientException var9) { System.out.println(var9.toString()); throw new OAuth2AccessDeniedException("Error requesting access token.", resource, var9); } }