User Object based Auth

Updating User Login method to accept User objects instead of just roles to allow
for testing that requires a user object in the security context