Class DuoSDKClientAdaptor

java.lang.Object
net.shibboleth.idp.plugin.authn.duo.AbstractDuoOIDCClient
net.shibboleth.idp.plugin.authn.duo.sdk.impl.DuoSDKClientAdaptor
All Implemented Interfaces:
DuoOIDCClient, DuoOIDCClientCapabilities

@ThreadSafe @Immutable public final class DuoSDKClientAdaptor extends AbstractDuoOIDCClient

An Object Adaptor class for bridging between the Duo SDK implementation and the internal DuoOIDCClient interface.

  • Field Details

    • log

      @Nonnull private final org.slf4j.Logger log
      Class logger.
    • client

      @Nonnull private final com.duosecurity.Client client
      The wrapped Duo native client.
    • healthCheckResponseConverter

      @Nonnull private final Function<com.duosecurity.model.HealthCheckResponse,DuoHealthCheck> healthCheckResponseConverter
      Function to map the native Duo HealthCheckResponse object to the interface DuoHealthCheck object.
    • tokenResponseConverter

      @Nonnull private final BiFunction<com.duosecurity.model.Token,DuoOIDCIntegration,com.nimbusds.jwt.JWT> tokenResponseConverter
      Function to map the native Duo Token object to the interface JWT object.
    • duoIntegration

      @Nonnull private final DuoOIDCIntegration duoIntegration
      Save off the integration to help generate the JWT.
  • Constructor Details

    • DuoSDKClientAdaptor

      DuoSDKClientAdaptor(@Nonnull DuoOIDCIntegration integration, @Nullable List<String> caCerts) throws DuoClientException
      Package-private constructor. Initialises the native Duo SDK client.

      Should only be instantiated by the DuoSDKClientFactory.

      Parameters:
      integration - the Duo integration to initialize the client from. Never null.
      caCerts - the list of CA Certificates used to validate connections to Duo. Can be null.
      Throws:
      DuoClientException - if there is an error instantiating the client
  • Method Details