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
An Object Adaptor class for bridging between the Duo SDK implementation
and the internal DuoOIDCClient interface.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classDefault health check response converter.private final classDefault Duo token converter. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final com.duosecurity.ClientThe wrapped Duo native client.private final DuoOIDCIntegrationSave off the integration to help generate the JWT.private final Function<com.duosecurity.model.HealthCheckResponse,DuoHealthCheck> Function to map the native DuoHealthCheckResponseobject to the interfaceDuoHealthCheckobject.private final org.slf4j.LoggerClass logger.private final BiFunction<com.duosecurity.model.Token,DuoOIDCIntegration, com.nimbusds.jwt.JWT> Function to map the native DuoTokenobject to the interfaceJWTobject. -
Constructor Summary
ConstructorsConstructorDescriptionDuoSDKClientAdaptor(DuoOIDCIntegration integration, List<String> caCerts) Package-private constructor. -
Method Summary
Modifier and TypeMethodDescriptioncreateAuthUrl(String username, String state, String nonce, String redirectURIOverride) com.nimbusds.jwt.JWTexchangeAuthorizationCodeFor2FAResult(String code, String username, String redirectURIOverride) booleanMethods inherited from class net.shibboleth.idp.plugin.authn.duo.AbstractDuoOIDCClient
getCapabilities, getClientId
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
client
@Nonnull private final com.duosecurity.Client clientThe wrapped Duo native client. -
healthCheckResponseConverter
@Nonnull private final Function<com.duosecurity.model.HealthCheckResponse,DuoHealthCheck> healthCheckResponseConverterFunction to map the native DuoHealthCheckResponseobject to the interfaceDuoHealthCheckobject. -
tokenResponseConverter
@Nonnull private final BiFunction<com.duosecurity.model.Token,DuoOIDCIntegration, tokenResponseConvertercom.nimbusds.jwt.JWT> Function to map the native DuoTokenobject to the interfaceJWTobject. -
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. Nevernull.caCerts- the list of CA Certificates used to validate connections to Duo. Can benull.- Throws:
DuoClientException- if there is an error instantiating the client
-
-
Method Details
-
healthCheck
- Throws:
DuoClientException
-
createAuthUrl
@Nonnull public String createAuthUrl(@Nonnull @NotEmpty String username, @Nonnull @NotEmpty String state, @Nullable String nonce, @Nullable String redirectURIOverride) throws DuoClientException The Duo WebSDK Client does not support either the
nonceorredirectURIOverrideparameters.- Throws:
DuoClientException
-
exchangeAuthorizationCodeFor2FAResult
@Nonnull public com.nimbusds.jwt.JWT exchangeAuthorizationCodeFor2FAResult(@Nonnull String code, @Nonnull String username, @Nullable String redirectURIOverride) throws DuoClientException The Duo WebSDK Client does not support the
redirectURIOverrideparameter.- Throws:
DuoClientException
-
isSupportsNonce
public boolean isSupportsNonce()
-