refactor to support server integration

fixed the divergence, now clean (representing only the refactor)

this refactors the authentication to separate identification (principal) from signature (credentials)


the common practice for Java server implementations provides for principals (i.e. user accounts) to have separate representations from each authentication request, this accomplishes that