use of com.okta.oidc.util.AuthorizationException in project okta-oidc-android by okta.
the class OktaIdTokenTest method validateWithCustomValidatorThatAlwaysThrowsException.
@Test
public void validateWithCustomValidatorThatAlwaysThrowsException() throws AuthorizationException {
mExpectedEx.expect(AuthorizationException.class);
String jwt = TestValues.getJwt(CUSTOM_URL, CUSTOM_NONCE, mConfig.getClientId(), "fakeaud");
OktaIdToken idToken = OktaIdToken.parseIdToken(jwt);
String verifier = CodeVerifierUtil.generateRandomCodeVerifier();
TokenRequest tokenRequest = TestValues.getTokenRequest(mConfig, getAuthorizeRequest(mConfig, verifier), getAuthorizeResponse(CUSTOM_STATE, CUSTOM_CODE), mConfiguration);
idToken.validate(tokenRequest, oktaIdToken -> {
throw new AuthorizationException("Expected", null);
});
}
use of com.okta.oidc.util.AuthorizationException in project okta-oidc-android by okta.
the class SyncWebAuthClientImpl method processSignInResult.
@NonNull
private Result processSignInResult(StateResult result) {
if (result == null) {
return Result.error(new AuthorizationException("Result is empty", new NullPointerException()));
}
switch(result.getStatus()) {
case CANCELED:
return Result.cancel();
case ERROR:
return Result.error(result.getException());
case AUTHORIZED:
mOktaState.setCurrentState(State.TOKEN_EXCHANGE);
TokenResponse response;
try {
WebRequest authorizedRequest = mOktaState.getAuthorizeRequest();
ProviderConfiguration providerConfiguration = mOktaState.getProviderConfiguration();
AuthorizeResponse authResponse = (AuthorizeResponse) result.getAuthorizationResponse();
if (isVerificationFlow((authResponse))) {
return processEmailVerification(authResponse);
}
validateResult(result.getAuthorizationResponse(), authorizedRequest);
TokenRequest request = tokenExchange((AuthorizeResponse) result.getAuthorizationResponse(), providerConfiguration, (AuthorizeRequest) authorizedRequest);
mCurrentRequest.set(new WeakReference<>(request));
response = request.executeRequest(mHttpClient);
mOktaState.save(response);
} catch (OktaRepository.EncryptionException e) {
return Result.error(EncryptionErrors.byEncryptionException(e));
} catch (AuthorizationException e) {
return Result.error(e);
}
return Result.success();
default:
return Result.error(new AuthorizationException("StateResult with invalid status: " + result.getStatus().name(), new IllegalStateException()));
}
}
use of com.okta.oidc.util.AuthorizationException in project okta-oidc-android by okta.
the class AuthorizedRequest method executeRequest.
@Override
public JSONObject executeRequest(OktaHttpClient client) throws AuthorizationException {
AuthorizationException exception = null;
HttpResponse response = null;
try {
response = openConnection(client);
return response.asJson();
} catch (IOException io) {
exception = new AuthorizationException(io.getMessage(), io);
} catch (JSONException je) {
exception = AuthorizationException.fromTemplate(AuthorizationException.GeneralErrors.JSON_DESERIALIZATION_ERROR, je);
} catch (Exception e) {
exception = AuthorizationException.fromTemplate(AuthorizationException.GeneralErrors.NETWORK_ERROR, e);
} finally {
if (response != null) {
response.disconnect();
}
if (exception != null) {
throw exception;
}
}
return null;
}
use of com.okta.oidc.util.AuthorizationException in project okta-oidc-android by okta.
the class NativeAuthorizeRequest method executeRequest.
@Override
public AuthorizeResponse executeRequest(OktaHttpClient client) throws AuthorizationException {
AuthorizationException exception = null;
HttpResponse response = null;
try {
response = openConnection(client);
if (response.getStatusCode() == HttpURLConnection.HTTP_UNAUTHORIZED) {
exception = AuthorizationException.TokenRequestErrors.INVALID_CLIENT;
} else if (response.getStatusCode() == HttpURLConnection.HTTP_OK || response.getStatusCode() == HttpURLConnection.HTTP_MOVED_TEMP) {
Uri locationUri = Uri.parse(response.getHeaderField("Location"));
return AuthorizeResponse.fromUri(locationUri);
}
} catch (IOException ex) {
exception = new AuthorizationException(ex.getMessage(), ex);
} catch (Exception e) {
exception = new AuthorizationException(e.getMessage(), e);
} finally {
if (response != null) {
response.disconnect();
}
if (exception != null) {
throw exception;
}
}
return null;
}
use of com.okta.oidc.util.AuthorizationException in project okta-oidc-android by okta.
the class TokenRequest method executeRequest.
@Override
public TokenResponse executeRequest(OktaHttpClient client) throws AuthorizationException {
HttpResponse response = null;
TokenResponse tokenResponse;
try {
response = openConnection(client);
JSONObject json = response.asJsonWithErrorDescription();
if (json.has(AuthorizationException.PARAM_ERROR)) {
try {
final String error = json.getString(AuthorizationException.PARAM_ERROR);
throw AuthorizationException.fromOAuthTemplate(AuthorizationException.TokenRequestErrors.byString(error), error, json.optString(AuthorizationException.PARAM_ERROR_DESCRIPTION, null), UriUtil.parseUriIfAvailable(json.optString(AuthorizationException.PARAM_ERROR_URI)));
} catch (JSONException jsonEx) {
throw AuthorizationException.fromTemplate(AuthorizationException.GeneralErrors.JSON_DESERIALIZATION_ERROR, jsonEx);
}
}
tokenResponse = new Gson().fromJson(json.toString(), TokenResponse.class);
tokenResponse.setCreationTime(System.currentTimeMillis());
if (tokenResponse.getIdToken() != null) {
OktaIdToken idToken;
try {
idToken = OktaIdToken.parseIdToken(tokenResponse.getIdToken());
} catch (IllegalArgumentException | JsonIOException ex) {
Log.e(TAG, "", ex);
throw AuthorizationException.fromTemplate(AuthorizationException.GeneralErrors.ID_TOKEN_PARSING_ERROR, ex);
}
idToken.validate(this, mConfig.getIdTokenValidator());
}
return tokenResponse;
} catch (IOException ex) {
throw new AuthorizationException(ex.getMessage(), ex);
} catch (JSONException ex) {
throw AuthorizationException.fromTemplate(AuthorizationException.GeneralErrors.JSON_DESERIALIZATION_ERROR, ex);
} catch (AuthorizationException ae) {
throw ae;
} catch (Exception e) {
throw AuthorizationException.fromTemplate(AuthorizationException.GeneralErrors.NETWORK_ERROR, e);
} finally {
if (response != null) {
response.disconnect();
}
}
}
Aggregations