[aerogear-dev] [Android] - Refactoring OAuth2 configuration

Bruno Oliveira bruno at abstractj.org
Mon Mar 9 09:42:52 EDT 2015


Good morning, while writing our quickstarts, I found something that I
would like to change.

Currently to setup our OAuth2 providers we have to do something like
this:

AuthorizationManager.config(MODULE_NAME, OAuth2AuthorizationConfiguration.class)
        .setBaseURL(new URL("https://"))
        .setAuthzEndpoint(AUTHZ_ENDPOINT)
        .setAccessTokenEndpoint(AUTHZ_TOKEN_ENDPOINT)
        .setAccountId(AUTHZ_ACCOOUNT_ID)
        .setClientId(AUTHZ_CLIENT_ID)
        .setClientSecret(AUTHZ_CLIENT_SECRET)
        .setRedirectURL(AUTHZ_REDIRECT_URL)
        .setRefreshEndpoint(AUTHZ_TOKEN_ENDPOINT)
        .addAdditionalAccessParam(Pair.create("response_type", "code"))
        .setScopes(Arrays.asList("photo_upload, publish_actions"))
        .asModule();

Although, things like the url endpoint, access token endpoint, or the
module will most of time remain unchanged. Unless you switch from Facebook to
Keycloak for example. People don't care that much about these
urls, but which provider they want to connect.

So I would like to refactor the authz module from AGDroid, define the default values
for ommitted params and make the methods like setBaseURL for example,
alternative. Something like this:

AuthorizationManager.config(MODULE_NAME, OAuth2AuthorizationConfiguration.class)
        .setClientId(AUTHZ_CLIENT_ID)
        .setClientSecret(AUTHZ_CLIENT_SECRET)
        .asModule();

Based on the module name, we instantiate the respective module with the
default values already in.

Thoughts? Let me know if the idea is useless.


--

abstractj
PGP: 0x84DC9914


More information about the aerogear-dev mailing list