The basic idea is to provide a plug-in point that can be used to resolve principals to things like groups or effective principals. The primary use case that is driving this for me is to be able to resolve authenticated principals to a set of groups where that user to group mapping is external to the user repository. In addition other mappings can be done like mapping a real user principal to an effective user principal. This would be useful when a translation is required from an external identity store (e.g. LDAP) to some application specific identities. The existing pattern for things like RolePermissionResolver should be followed for consistency.