...
Create an AttributeResolutionContext and populate it with appropriate parameters:
The canonical Prinicipal name
The entityID of the IdP and the SP
Optional ID of an authentication flow used
Additionally the precise names of the attributes resolved can also be set.
Locate an Attribute Resolver, generally be injecting an instance of the “default” resolver service, shibboleth.AttributeResolverService
Call the resolver (via a try-with-resources paradigm to access the locked component and then release it). After resolution, the result can be extracted via the getResolvedIdPAttributes() method and will usually be inserted into an AttributeContext.