Prateek created OLTU-210:
----------------------------
Summary: OAUTH_APPROVAL_ERROR_GENERIC : An unexpected error has
occured during authentication. Please try again in salesforce integration ?
Key: OLTU-210
URL: https://issues.apache.org/jira/browse/OLTU-210
Project: Apache Oltu
Issue Type: Bug
Reporter: Prateek
I am working on the Spring MVC + Apache Oltu +Salesforce Integration Example.
I got the ClientId and Client Secrete from the salesforce Connected App. Now I
am not sure on the below error.
IMP: Why "authorizationCode" is comming null from salesforce? What all scopes
can be set like setScope("full,refresh_token")??
What API do we need to used like here we can used for GITHUB ?
{code:java}
GitHubTokenResponse oAuthResponse = oAuthClient.accessToken(request,
GitHubTokenResponse.class);
{code}
What OAuthBearerClientRequest can be used like below ?
{code:java}
request= new
OAuthBearerClientRequest("https://ap5.salesforce.com/5007F000000nxss").
setAccessToken(oAuthResponse.getAccessToken()).
buildQueryMessage();
{code}
[OAUTH_APPROVAL_ERROR_GENERIC : An unexpected error has occured during
authentication. Please try again.]
I am using the below code:-
{code:java}
private static final String AUTHORIZATION_URL =
"https://login.salesforce.com/services/oauth2/authorize";
private static final String CLIENT_ID =
"3MVG9d8..z.hDcPJZPIzGJ5UZDqJOJY.3R6RBM8sJAF8XXXXXXXXXXXXXXXXXXXXXX";
private static final String CLIENT_SECRET = "375066XXXXX";
private static final String REDIRECT_URL =
"http://localhost:8080/apache-oltu/salesforce/redirect";
//private static final String ACCESS_TOKEN_URL =
"https://login.salesforce.com/services/oauth2/token";
private static final String ACCESS_TOKEN_URL =
"https://ap5.salesforce.com/services/oauth2/token";
@RequestMapping(value = "/auth", method = RequestMethod.GET)
public String authenticate() throws OAuthSystemException {
OAuthClientRequest request = OAuthClientRequest
.authorizationLocation(AUTHORIZATION_URL)
.setClientId(CLIENT_ID)
.setRedirectURI(REDIRECT_URL)
.setResponseType("code")
.setScope("full,refresh_token")
.buildQueryMessage();
return "redirect:" + request.getLocationUri();
}
@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public HttpEntity<String> redirect(
@RequestParam(value = "token", required = false) String
code) throws OAuthSystemException, OAuthProblemException {
String value = "UNKNOWN";
if (code != null && code.length() > 0) {
String details = getAccessToken(code);
value = details;
}
return new ResponseEntity<String>(value,HttpStatus.OK);
}
private String getAccessToken(String authorizationCode) throws
OAuthSystemException, OAuthProblemException {
OAuthClientRequest request = OAuthClientRequest
.tokenLocation(ACCESS_TOKEN_URL)
.setGrantType(GrantType.AUTHORIZATION_CODE)
.setClientId(CLIENT_ID)
.setClientSecret(CLIENT_SECRET)
.setRedirectURI(REDIRECT_URL)
.setCode(authorizationCode)
.buildBodyMessage();
//create OAuth client that uses custom http client under the
hood
OAuthClient oAuthClient = new OAuthClient(new
URLConnectionClient());
GitHubTokenResponse oAuthResponse =
oAuthClient.accessToken(request, GitHubTokenResponse.class);
System.out.println(oAuthResponse.getBody());
request= new
OAuthBearerClientRequest("https://ap5.salesforce.com/5007F000000nxss").
setAccessToken(oAuthResponse.getAccessToken()).
buildQueryMessage();
OAuthClient client = new OAuthClient(new URLConnectionClient());
OAuthResourceResponse resourceResponse=
client.resource(request, "GET", OAuthResourceResponse.class);
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)