use of org.apache.amber.oauth2.common.exception.OAuthSystemException in project components by Talend.
the class Oauth2ImplicitClient method getToken.
public <T extends OAuthAccessTokenResponse> T getToken(Class<T> tokenResponseClass) {
try {
TokenRequestBuilder builder = //
OAuthClientRequest.tokenLocation(//
tokenLocation.toString()).setGrantType(//
grantType).setClientId(//
clientID).setClientSecret(clientSecret);
if (GrantType.AUTHORIZATION_CODE == grantType) {
builder = //
builder.setRedirectURI(callbackURL.toString()).setCode(getAuthorizationCode());
} else if (GrantType.REFRESH_TOKEN == grantType) {
builder = builder.setRefreshToken(refreshToken);
}
OAuthClientRequest request = builder.buildQueryMessage();
OAuthClient oauthClient = new OAuthClient(new URLConnectionClient());
return oauthClient.accessToken(request, tokenResponseClass);
} catch (OAuthSystemException e) {
throw new RuntimeException(e);
} catch (OAuthProblemException e) {
throw new RuntimeException(e);
}
}
use of org.apache.amber.oauth2.common.exception.OAuthSystemException in project aos-MediaLib by nova-video-player.
the class Trakt method refreshAccessToken.
private boolean refreshAccessToken() {
Log.d(TAG, "refreshAccessToken()");
try {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(mContext);
String refreshToken = getRefreshTokenFromPreferences(pref);
if (refreshToken == null || refreshToken.isEmpty()) {
Intent intent = new Intent(TRAKT_ISSUE_REFRESH_TOKEN);
intent.setPackage(ArchosUtils.getGlobalContext().getPackageName());
mContext.sendBroadcast(intent);
} else {
OAuthClientRequest request = TraktV2.getAccessTokenRefreshRequest(API_KEY, API_SECRET, "http://localhost", refreshToken);
OAuthClient client = new OAuthClient(new TraktHttpClient());
OAuthJSONAccessTokenResponse res = client.accessToken(request);
if (res != null && res.getAccessToken() != null && !res.getAccessToken().isEmpty()) {
setAccessToken(pref, res.getAccessToken());
mTraktV2.setAccessToken(res.getAccessToken());
setRefreshToken(pref, res.getRefreshToken());
return true;
}
}
} catch (OAuthSystemException e) {
Intent intent = new Intent(TRAKT_ISSUE_REFRESH_TOKEN);
intent.setPackage(ArchosUtils.getGlobalContext().getPackageName());
mContext.sendBroadcast(intent);
} catch (OAuthProblemException e) {
Intent intent = new Intent(TRAKT_ISSUE_REFRESH_TOKEN);
intent.setPackage(ArchosUtils.getGlobalContext().getPackageName());
mContext.sendBroadcast(intent);
}
return false;
}
use of org.apache.amber.oauth2.common.exception.OAuthSystemException in project aos-MediaLib by nova-video-player.
the class TraktHttpClient method execute.
@Override
public <T extends OAuthClientResponse> T execute(OAuthClientRequest request, Map<String, String> headers, String requestMethod, Class<T> responseClass) throws OAuthSystemException, OAuthProblemException {
try {
HttpURLConnection connection = (HttpURLConnection) (new URL(request.getLocationUri())).openConnection();
if (headers != null && !headers.isEmpty()) {
for (Map.Entry<String, String> header : headers.entrySet()) {
connection.addRequestProperty(header.getKey(), header.getValue());
}
}
if (request.getHeaders() != null) {
for (Map.Entry<String, String> header : request.getHeaders().entrySet()) {
connection.addRequestProperty(header.getKey(), header.getValue());
}
}
if (!OAuthUtils.isEmpty(requestMethod)) {
connection.setRequestMethod(requestMethod);
if (requestMethod.equals("POST")) {
connection.setDoOutput(true);
OutputStream ost = connection.getOutputStream();
PrintWriter pw = new PrintWriter(ost);
pw.print(request.getBody());
pw.flush();
pw.close();
}
} else {
connection.setRequestMethod("GET");
}
connection.connect();
InputStream inputStream;
int responseCode = connection.getResponseCode();
if (responseCode >= 400) {
inputStream = connection.getErrorStream();
} else {
inputStream = connection.getInputStream();
}
String body = null;
if (inputStream != null) {
body = OAuthUtils.saveStreamAsString(inputStream);
}
if (body != null) {
return OAuthClientResponseFactory.createCustomResponse(body, connection.getContentType(), responseCode, responseClass);
}
} catch (IOException e) {
throw new OAuthSystemException(e);
}
return null;
}
use of org.apache.amber.oauth2.common.exception.OAuthSystemException in project mbed-cloud-sdk-java by ARMmbed.
the class OAuth method retryingIntercept.
private Response retryingIntercept(Chain chain, boolean updateTokenAndRetryOnAuthorizationFailure) throws IOException {
Request request = chain.request();
// If the request already have an authorization (eg. Basic auth), do nothing
if (request.header("Authorization") != null) {
return chain.proceed(request);
}
// If first time, get the token
OAuthClientRequest oAuthRequest;
if (getAccessToken() == null) {
updateAccessToken(null);
}
if (getAccessToken() != null) {
// Build the request
Builder rb = request.newBuilder();
String requestAccessToken = new String(getAccessToken());
try {
oAuthRequest = new OAuthBearerClientRequest(request.url().toString()).setAccessToken(requestAccessToken).buildHeaderMessage();
} catch (OAuthSystemException e) {
throw new IOException(e);
}
for (Map.Entry<String, String> header : oAuthRequest.getHeaders().entrySet()) {
rb.addHeader(header.getKey(), header.getValue());
}
rb.url(oAuthRequest.getLocationUri());
// Execute the request
Response response = chain.proceed(rb.build());
// 401/403 most likely indicates that access token has expired. Unless it happens two times in a row.
if (response != null && (response.code() == HTTP_UNAUTHORIZED || response.code() == HTTP_FORBIDDEN) && updateTokenAndRetryOnAuthorizationFailure) {
if (updateAccessToken(requestAccessToken)) {
return retryingIntercept(chain, false);
}
}
return response;
} else {
return chain.proceed(chain.request());
}
}
use of org.apache.amber.oauth2.common.exception.OAuthSystemException in project mbed-cloud-sdk-java by ARMmbed.
the class OAuthOkHttpClient method execute.
@SuppressWarnings("resource")
@Override
public <T extends OAuthClientResponse> T execute(OAuthClientRequest request, Map<String, String> headers, String requestMethod, Class<T> responseClass) throws OAuthSystemException, OAuthProblemException {
MediaType mediaType = MediaType.parse("application/json");
Request.Builder requestBuilder = new Request.Builder().url(request.getLocationUri());
if (headers != null) {
for (Entry<String, String> entry : headers.entrySet()) {
if (entry.getKey().equalsIgnoreCase("Content-Type")) {
mediaType = MediaType.parse(entry.getValue());
} else {
requestBuilder.addHeader(entry.getKey(), entry.getValue());
}
}
}
RequestBody body = request.getBody() != null ? RequestBody.create(mediaType, request.getBody()) : null;
requestBuilder.method(requestMethod, body);
try {
Response response = client.newCall(requestBuilder.build()).execute();
return OAuthClientResponseFactory.createCustomResponse(response.body().string(), response.body().contentType().toString(), response.code(), null, responseClass);
} catch (IOException e) {
throw new OAuthSystemException(e);
}
}
Aggregations