anonymous and authenticated principals
principals with spec, Option[AuthenticatedUser] replaced with Principal objects