Interface ClientIdMetadataDocumentProvider<CONFIG extends AbstractClientIdMetadataDocumentExecutor.Configuration>

All Superinterfaces:
Provider
All Known Implementing Classes:
AbstractPersistentClientIdMetadataDocumentProvider, PersistentClientIdMetadataDocumentProvider

public interface ClientIdMetadataDocumentProvider<CONFIG extends AbstractClientIdMetadataDocumentExecutor.Configuration> extends Provider
The interface provides the following features:
  • Determining if (re-)fetching a client metadata is needed
  • Concrete process of caching a client metadata: create and update
  • Update cache expiry time
  • Augment a client metadata in ClientRepresentation
Author:
Takashi Norimatsu
  • Method Details

    • getConfiguration

      CONFIG getConfiguration()
      Gets a configuration of an executor for Client ID metadata document.
      Returns:
      CONFIG extends AbstractClientIdMetadataDocumentExecutor.Configuration
    • setConfiguration

      void setConfiguration(CONFIG configuration)
      Sets a configuration of an executor for Client ID metadata document.
      Parameters:
      configuration - a configuration of an executor for Client ID metadata document, not null
    • setCacheExpiryTimeToClientMetadata

      void setCacheExpiryTimeToClientMetadata(ClientRepresentation clientRep, int cacheExpiryTimeInSec)
      Sets a cache expiry time in sec to a client metadata.
      Parameters:
      clientRep - a client metadata in ClientRepresentation, not null
      cacheExpiryTimeInSec - when a cache expires in sec
    • setCacheExpiryTimeToClientMetadata

      void setCacheExpiryTimeToClientMetadata(ClientModel clientModel, int cacheExpiryTimeInSec)
      Sets a cache expiry time in sec to a client metadata.
      Parameters:
      clientModel - a client metadata in ClientModel, not null
      cacheExpiryTimeInSec - when a cache expires in sec
    • determineFetchOperation

      Returns if fetching a client metadata to newly create it is needed, or re-fetching a client metadata to update it is needed, or re-fetching is not needed because a client metadata does not expire.
      Parameters:
      clientId - client_id parameter of an authorization request, not null
      Returns:
      AbstractClientIdMetadataDocumentExecutor.FetchOperation
    • createClientMetadata

      Creates a client metadata.
      Parameters:
      clientOIDCWithCacheControl - a combination of a fetched client metadata and Cache-Control header accompanied by it, not null
      Returns:
      ClientModel a created client metadata in ClientModel
      Throws:
      ClientPolicyException - when creating a client metadata fails
    • updateClientMetadata

      Updates a client metadata.
      Parameters:
      clientOIDCWithCacheControl - a combination of a re-fetched client metadata and Cache-Control header accompanied by it, not null
      Returns:
      ClientModel an updated client metadata in ClientModel
      Throws:
      ClientPolicyException - when updating a client metadata fails
    • augmentClientMetadata

      void augmentClientMetadata(ClientRepresentation clientRep)
      Augments a client metadata.
      Parameters:
      clientRep - a client metadata in ClientRepresentation, not null
    • close

      default void close()
      Specified by:
      close in interface Provider