My initial work is here:https://github.com/aerogear/aerogear-android/tree/auth

Changes to existing classes/API:

HttpProvider now returns a class called HeaderAndBodyMap.  This is a Map of the headers along with a byte array which was the body of the response.

HttpProvider
will throw a HttpException if it does not receive a 200 status

HttpException
wraps some information about the HTTP result.

Description of current Auth Classes and Methods:

Interfaces:
Authenticator is a factory/lookup class a la Pipeline.

AuthenticationModule is a module that manages a authenticated users credentials.  Provides enroll, login, logout, authToken, and isAuthenticated.

Builder is an interface that can instantiate an instance of AuthenticationModule.

Classes:

DefaultAuthenticator implements Authenticator 

RestAuthenticationModule implements AuthenticationModule  only login is implemented.


Todo:

Implement the rest of the methods in RestAuthenticationModule

Update Pipe implementations to use the AuthenticationModules