Search in sources :

Example 1 with HttpResponse

use of com.okta.oidc.net.HttpResponse in project okta-oidc-android by okta.

the class BaseRequestTest method close.

@Test
public void close() throws Exception {
    mExpectedEx.expect(IOException.class);
    if (mClientType == USE_DEFAULT_HTTP) {
        mExpectedEx.expectMessage("stream is closed");
    } else {
        mExpectedEx.expectMessage("closed");
    }
    mEndPoint.enqueueConfigurationSuccess();
    mRequest.mUri = Uri.parse(mEndPoint.getUrl());
    mRequest.mConnParams = new ConnectionParameters.ParameterBuilder().setRequestMethod(ConnectionParameters.RequestMethod.GET).create();
    HttpResponse response = mRequest.openConnection(mHttpClient);
    mRequest.close();
    response.getContent().read();
}
Also used : ConnectionParameters(com.okta.oidc.net.ConnectionParameters) HttpResponse(com.okta.oidc.net.HttpResponse) Test(org.junit.Test)

Example 2 with HttpResponse

use of com.okta.oidc.net.HttpResponse in project okta-oidc-android by okta.

the class BaseRequestTest method openConnection.

@Test
public void openConnection() throws Exception {
    mEndPoint.enqueueReturnSuccessEmptyBody();
    mRequest.mUri = Uri.parse(mEndPoint.getUrl());
    mRequest.mConnParams = new ConnectionParameters.ParameterBuilder().setRequestMethod(ConnectionParameters.RequestMethod.GET).create();
    HttpResponse response = mRequest.openConnection(mHttpClient);
    assertEquals(response.getStatusCode(), HTTP_OK);
}
Also used : ConnectionParameters(com.okta.oidc.net.ConnectionParameters) HttpResponse(com.okta.oidc.net.HttpResponse) Test(org.junit.Test)

Example 3 with HttpResponse

use of com.okta.oidc.net.HttpResponse 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;
}
Also used : AuthorizationException(com.okta.oidc.util.AuthorizationException) HttpResponse(com.okta.oidc.net.HttpResponse) JSONException(org.json.JSONException) IOException(java.io.IOException) JSONException(org.json.JSONException) IOException(java.io.IOException) AuthorizationException(com.okta.oidc.util.AuthorizationException)

Example 4 with HttpResponse

use of com.okta.oidc.net.HttpResponse 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;
}
Also used : AuthorizationException(com.okta.oidc.util.AuthorizationException) HttpResponse(com.okta.oidc.net.HttpResponse) IOException(java.io.IOException) Uri(android.net.Uri) IOException(java.io.IOException) AuthorizationException(com.okta.oidc.util.AuthorizationException)

Example 5 with HttpResponse

use of com.okta.oidc.net.HttpResponse 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();
        }
    }
}
Also used : AuthorizationException(com.okta.oidc.util.AuthorizationException) HttpResponse(com.okta.oidc.net.HttpResponse) JSONException(org.json.JSONException) Gson(com.google.gson.Gson) IOException(java.io.IOException) JsonIOException(com.google.gson.JsonIOException) OktaIdToken(com.okta.oidc.OktaIdToken) IOException(java.io.IOException) AuthorizationException(com.okta.oidc.util.AuthorizationException) JSONException(org.json.JSONException) JsonIOException(com.google.gson.JsonIOException) TokenResponse(com.okta.oidc.net.response.TokenResponse) JSONObject(org.json.JSONObject) JsonIOException(com.google.gson.JsonIOException)

Aggregations

HttpResponse (com.okta.oidc.net.HttpResponse)9 IOException (java.io.IOException)7 AuthorizationException (com.okta.oidc.util.AuthorizationException)6 JSONException (org.json.JSONException)4 Gson (com.google.gson.Gson)3 JSONObject (org.json.JSONObject)3 WorkerThread (androidx.annotation.WorkerThread)2 ConnectionParameters (com.okta.oidc.net.ConnectionParameters)2 Test (org.junit.Test)2 Uri (android.net.Uri)1 JsonIOException (com.google.gson.JsonIOException)1 OktaIdToken (com.okta.oidc.OktaIdToken)1 TokenResponse (com.okta.oidc.net.response.TokenResponse)1 InputStream (java.io.InputStream)1