OAUTH error="access_denied", error_description="Error requesting access token." when trying to access tokens

Viewed 400

the code that i wrote:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.client.DefaultOAuth2ClientContext;
import org.springframework.security.oauth2.client.OAuth2RestOperations;
import org.springframework.security.oauth2.client.OAuth2RestTemplate;
import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails;
import org.springframework.security.oauth2.client.token.AccessTokenRequest;
import org.springframework.security.oauth2.client.token.DefaultAccessTokenRequest;
import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableOAuth2Client;

@EnableOAuth2Client
@Configuration
public class OAuth2SecurityConfig {

private static Logger logger = LoggerFactory.getLogger(OAuth2SecurityConfig.class);

@Value("${tokenUrl}")
private String tokenUrl;

@Value("${oauthClientId}")
private String oauthClientId;

@Value("${oauthClientPassword}")
private String oauthClientPassword;

@Value("${oauthGrantType}")
private String oauthGrantType;

@Bean
protected OAuth2ProtectedResourceDetails resourceDetails() {
    logger.info("inside resourceDetails");
    ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails();
    resourceDetails.setAccessTokenUri(tokenUrl);
    resourceDetails.setClientId(oauthClientId);
    resourceDetails.setClientSecret(oauthClientPassword);
    resourceDetails.setGrantType(oauthGrantType);
    logger.info("resourceDetails: "+ resourceDetails.toString());
    logger.info("resourceDetails: "+ resourceDetails.getAccessTokenUri());
    return resourceDetails;
}

@Bean
public OAuth2RestOperations restTemplateToken() {
    logger.info("inside restTemplateToken");
    AccessTokenRequest request = new DefaultAccessTokenRequest();
    return new OAuth2RestTemplate(resourceDetails(), new DefaultOAuth2ClientContext(request));      
}

}

The file where I am accessing the tokens I have given this line to fetch it after autowiring OAuth2RestOperations :

@Autowired
private OAuth2RestOperations restTemplateToken;

inside Method....

OAuth2AccessToken accessToken = restTemplateToken.getAccessToken();

When i execute it I am getting error like :

error="access_denied", error_description="Error requesting access token."

Not sure why it is failing. Please help. Thanks.

0 Answers
Related