Class LoadClientStorageServices

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, ProfileAction

public class LoadClientStorageServices extends AbstractProfileAction
An action that loads any number of ClientStorageService instances from a POST submission or cookies as applicable.
Event:
EventIds.PROCEED_EVENT_ID, EventIds.INVALID_PROFILE_CTX
  • Field Details

    • SUPPORT_FORM_FIELD

      @Nonnull @NotEmpty public static final String SUPPORT_FORM_FIELD
      Name of local storage form field containing local storage support indicator.
      See Also:
    • SUCCESS_FORM_FIELD

      @Nonnull @NotEmpty public static final String SUCCESS_FORM_FIELD
      Name of local storage form field signaling success/failure of a read operation.
      See Also:
    • VALUE_FORM_FIELD

      @Nonnull @NotEmpty public static final String VALUE_FORM_FIELD
      Name of local storage form field containing value read.
      See Also:
    • EXCEPTION_FORM_FIELD

      @Nonnull @NotEmpty public static final String EXCEPTION_FORM_FIELD
      Name of local storage form field containing value read.
      See Also:
    • log

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

      private boolean useLocalStorage
      Whether to allow for data loaded from local storage and submitted via POST.
    • storageServices

      @Nonnull @NonnullElements private Map<String,ClientStorageService> storageServices
      The storage service instances to load.
    • clientStorageLoadCtx

      @Nullable private ClientStorageLoadContext clientStorageLoadCtx
      Context to drive storage load.
  • Constructor Details

    • LoadClientStorageServices

      public LoadClientStorageServices()
      Constructor.
  • Method Details

    • setUseLocalStorage

      public void setUseLocalStorage(boolean flag)
      Set whether to allow for data loaded from local storage and submitted via POST.
      Parameters:
      flag - flag to set
    • setStorageServices

      public void setStorageServices(@Nonnull @NonnullElements Collection<ClientStorageService> services)
      Set the ClientStorageService instances to check for loading.
      Parameters:
      services - instances to check for loading
    • doPreExecute

      protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)
      Called prior to execution, actions may override this method to perform pre-processing for a request.

      If false is returned, execution will not proceed, and the action should attach an EventContext to the context tree to signal how to continue with overall workflow processing.

      If returning successfully, the last step should be to return the result of the superclass version of this method.

      Overrides:
      doPreExecute in class AbstractProfileAction
      Parameters:
      profileRequestContext - the current IdP profile request context
      Returns:
      true iff execution should proceed
    • doExecute

      protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)
      Performs this action. Actions must override this method to perform their work.
      Overrides:
      doExecute in class AbstractProfileAction
      Parameters:
      profileRequestContext - the current IdP profile request context
    • loadFromCookie

      private void loadFromCookie(@Nonnull ClientStorageService storageService, @Nonnull ClientStorageService.ClientStorageSource source)
      Load the specified storage service from a cookie.
      Parameters:
      storageService - service to load
      source - source to apply to load operation
    • loadFromLocalStorage

      private void loadFromLocalStorage(@Nonnull ClientStorageService storageService)
      Load the specified storage service from local storage data supplied in the POST.
      Parameters:
      storageService - service to load