Class AbstractExtractionAction

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, ProfileAction, Aware, MessageSource, MessageSourceAware, Action
Direct Known Subclasses:
ExtractRemoteUser, ExtractUserAgentAddress, ExtractUserAgentIdentifier, ExtractUsernamePasswordFromBasicAuth, ExtractUsernamePasswordFromFormRequest, ExtractUsernamePasswordFromWSSToken, ExtractX509CertificateFromRequest, PrePopulateUsername

public abstract class AbstractExtractionAction extends AbstractAuthenticationAction
A base class for authentication actions that extract usernames for subsequent use.

The base class adds a common mechanism for applying regular expression transforms to the username prior to being added to the context tree.

  • Field Details

    • log

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

      @Nonnull private List<Pair<Pattern,String>> transforms
      Match patterns and replacement strings to apply.
    • uppercase

      private boolean uppercase
      Convert to uppercase prior to transforms?
    • lowercase

      private boolean lowercase
      Convert to lowercase prior to transforms?
    • trim

      private boolean trim
      Trim prior to transforms?
    • usernameRemappingStrategy

      @Nullable private BiFunction<ProfileRequestContext,String,String> usernameRemappingStrategy
      Generic hook for remapping username.
  • Constructor Details

    • AbstractExtractionAction

      public AbstractExtractionAction()
      Constructor.
  • Method Details

    • setTransforms

      public void setTransforms(@Nullable Collection<Pair<String,String>> newTransforms)
      A collection of regular expression and replacement pairs.
      Parameters:
      newTransforms - collection of replacement transforms
    • setUppercase

      public void setUppercase(boolean flag)
      Controls conversion to uppercase prior to applying any transforms.
      Parameters:
      flag - uppercase flag
    • setLowercase

      public void setLowercase(boolean flag)
      Controls conversion to lowercase prior to applying any transforms.
      Parameters:
      flag - lowercase flag
    • setTrim

      public void setTrim(boolean flag)
      Controls whitespace trimming prior to applying any transforms.
      Parameters:
      flag - trim flag
    • setUsernameRemappingStrategy

      public void setUsernameRemappingStrategy(@Nullable BiFunction<ProfileRequestContext,String,String> strategy)
      Sets a general hook for remapping username.
      Parameters:
      strategy - username remapping strategy
      Since:
      5.1.0
    • applyTransforms

      @Deprecated(since="5.1.0", forRemoval=true) @Nullable @NotEmpty protected String applyTransforms(@Nullable String input)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Apply any configured rules, regular expression replacements, or remapping strategy to an input value and return the result.
      Parameters:
      input - the input string
      Returns:
      the result of applying the rules
    • applyTransforms

      @Nullable @NotEmpty protected String applyTransforms(@Nullable ProfileRequestContext profileRequestContext, @Nullable String input)
      Apply any configured rules, regular expression replacements, or remapping strategy to an input value and return the result.
      Parameters:
      profileRequestContext - profile request context
      input - the input string
      Returns:
      the result of applying the rules
      Since:
      5.1.0