Should this extend `BasicPrincipalResolver`? and just override the resolution part?