Class ChainingPrincipalResolver

  • All Implemented Interfaces:
    org.apereo.cas.authentication.principal.PrincipalResolver, org.springframework.core.Ordered

    public class ChainingPrincipalResolver
    extends java.lang.Object
    implements org.apereo.cas.authentication.principal.PrincipalResolver
    Delegates to one or more principal resolves in series to resolve a principal. The input to first configured resolver is the authenticated credential; for every subsequent resolver, the input is a Credential whose ID is the resolved principal ID of the previous resolver.

    A common use case for this component is resolving a temporary principal ID from an X.509 credential followed by a search (e.g. LDAP, database) for the final principal based on the temporary ID.

    Since:
    4.0.0
    • Field Summary

      • Fields inherited from interface org.springframework.core.Ordered

        HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
      • Fields inherited from interface org.apereo.cas.authentication.principal.PrincipalResolver

        BEAN_NAME_ATTRIBUTE_REPOSITORY, BEAN_NAME_GLOBAL_PRINCIPAL_ATTRIBUTE_REPOSITORY, BEAN_NAME_PRINCIPAL_RESOLVER
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.apereo.services.persondir.IPersonAttributeDao getAttributeRepository()  
      org.apereo.cas.authentication.principal.Principal resolve​(org.apereo.cas.authentication.Credential credential, java.util.Optional<org.apereo.cas.authentication.principal.Principal> principal, java.util.Optional<org.apereo.cas.authentication.AuthenticationHandler> handler)  
      boolean supports​(org.apereo.cas.authentication.Credential credential)
      Determines whether the credential is supported by this component by delegating to the first configured resolver in the chain.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.apereo.cas.authentication.principal.PrincipalResolver

        getName, getOrder, resolve, resolve
    • Constructor Detail

      • ChainingPrincipalResolver

        public ChainingPrincipalResolver()
    • Method Detail

      • resolve

        public org.apereo.cas.authentication.principal.Principal resolve​(org.apereo.cas.authentication.Credential credential,
                                                                         java.util.Optional<org.apereo.cas.authentication.principal.Principal> principal,
                                                                         java.util.Optional<org.apereo.cas.authentication.AuthenticationHandler> handler)
        Specified by:
        resolve in interface org.apereo.cas.authentication.principal.PrincipalResolver
      • supports

        public boolean supports​(org.apereo.cas.authentication.Credential credential)
        Determines whether the credential is supported by this component by delegating to the first configured resolver in the chain.
        Specified by:
        supports in interface org.apereo.cas.authentication.principal.PrincipalResolver
        Parameters:
        credential - The credential to check for support.
        Returns:
        True if the first configured resolver in the chain supports the credential, false otherwise.
      • getAttributeRepository

        public org.apereo.services.persondir.IPersonAttributeDao getAttributeRepository()
        Specified by:
        getAttributeRepository in interface org.apereo.cas.authentication.principal.PrincipalResolver