To be consistent with my previous comment, we should probably create an _AbstractLoginAttempt_ class to have the common implementations for any authentication type. We would move the type and account store getters/setters over there and make this class extend that one.

The new class would extend _AbstractResource_ and implement _LoginAttempt_. This class would extend _AbstractLoginAttempt_ and implement _BasicLoginAttempt_.