Class AbstractUsernamePasswordCredentialValidator

    • Field Detail

      • log

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

        private boolean savePasswordToCredentialSet
        Whether to save the password in the Java Subject's private credentials.
      • removeContextAfterValidation

        private boolean removeContextAfterValidation
        Whether to remove the UsernamePasswordContext after successful validation.
      • matchExpression

        @Nullable
        private Pattern matchExpression
        A regular expression to apply for acceptance testing.
      • uppercase

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

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

        private boolean trim
        Trim username prior to transforms?
    • Constructor Detail

      • AbstractUsernamePasswordCredentialValidator

        public AbstractUsernamePasswordCredentialValidator()
        Constructor.
    • Method Detail

      • savePasswordToCredentialSet

        public boolean savePasswordToCredentialSet()
        Get whether to save the password in the private credential set.
        Returns:
        whether to save the password in the private credential set
      • setSavePasswordToCredentialSet

        public void setSavePasswordToCredentialSet​(boolean flag)
        Set whether to save the password in the private credential set.
        Parameters:
        flag - flag to set
      • removeContextAfterValidation

        @Deprecated(since="4.1.0",
                    forRemoval=true)
        public boolean removeContextAfterValidation()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Get whether to remove the UsernamePasswordContext after it's successfully validated.

        Defaults to true

        Returns:
        whether to remove the context after successful validation
      • setRemoveContextAfterValidation

        @Deprecated(since="4.1.0",
                    forRemoval=true)
        public void setRemoveContextAfterValidation​(boolean flag)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Set whether to remove the UsernamePasswordContext after it's successfully validated.
        Parameters:
        flag - flag to set
      • setMatchExpression

        public void setMatchExpression​(@Nullable
                                       Pattern expression)
        Set a matching expression to apply to the username for acceptance.
        Parameters:
        expression - a matching expression
      • setTransforms

        public void setTransforms​(@Nullable @NonnullElements
                                  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
      • doValidate

        @Nullable
        protected abstract Subject doValidate​(@Nonnull
                                              ProfileRequestContext profileRequestContext,
                                              @Nonnull
                                              AuthenticationContext authenticationContext,
                                              @Nonnull
                                              UsernamePasswordContext usernamePasswordContext,
                                              @Nullable
                                              CredentialValidator.WarningHandler warningHandler,
                                              @Nullable
                                              CredentialValidator.ErrorHandler errorHandler)
                                       throws Exception
        Override method for subclasses to use to perform the actual validation.

        Any configured transforms will have been applied to populate the context with a transformed username prior to this method call.

        Parameters:
        profileRequestContext - profile request context
        authenticationContext - authentication context
        usernamePasswordContext - the username/password to validate
        warningHandler - optional warning handler interface
        errorHandler - optional error handler interface
        Returns:
        the validated result, or null if inapplicable
        Throws:
        Exception - if an error occurs
      • populateSubject

        @Nonnull
        protected Subject populateSubject​(@Nonnull
                                          Subject subject,
                                          @Nonnull
                                          UsernamePasswordContext usernamePasswordContext)
        Decorate the subject with "standard" content from the validation and clean up as instructed.
        Parameters:
        subject - the subject being returned
        usernamePasswordContext - the username/password validated
        Returns:
        the decorated subject
      • applyTransforms

        @Nonnull
        @NotEmpty
        protected String applyTransforms​(@Nonnull @NotEmpty
                                         String input)
        Apply any configured regular expression replacements to an input value and return the result.
        Parameters:
        input - the input string
        Returns:
        the result of applying the expressions