Interface DynamicDuoOIDCIntegration

All Superinterfaces:
DuoOIDCIntegration, PrincipalSupportingComponent
All Known Implementing Classes:
DefaultDuoOIDCIntegration

public interface DynamicDuoOIDCIntegration extends DuoOIDCIntegration
Specialised DuoOIDCIntegration that allows redirectURIs to be pre-registered or computed dynamically against a list of allowed origins.
  • Method Details

    • getAllowedOrigins

      @Nonnull @NotLive @Unmodifiable Set<String> getAllowedOrigins()
      Get a list of URL origins that are allowed to appear in computed redirect URIs.
      Returns:
      a set of unmodifiable allowed origins. Never null but could be empty.
    • getRegisteredRedirectURI

      @Nullable String getRegisteredRedirectURI()
      Get the static pre-registered redirect_uri.
      Returns:
      the pre-registered redirect_uri.
    • isRedirectURIPreregistered

      boolean isRedirectURIPreregistered()
      Has a redirectURI been pre-registered i.e. set in the properties file.
      Returns:
      true iff getRegisteredRedirectURI() is not null, false otherwise.
    • setRedirectURIIfAbsent

      void setRedirectURIIfAbsent(@Nonnull @NotEmpty String computedRedirectURI)

      Set the redirectURI from the one given in a thread-safe way.

      Once set, DuoOIDCIntegration.getRedirectURI() should return the value of computedRedirectURI.

      This is a sate changing operation, and should be thread-safe in its operation, as the integration will be shared amongst threads e.g. synchronize the method call.

      Parameters:
      computedRedirectURI - the runtime computed redirectURI.