Class PasswordMaskingUtils

java.lang.Object
com.atlassian.bamboo.util.PasswordMaskingUtils

public class PasswordMaskingUtils extends Object
  • Field Details

    • PASSWORD_MASK

      public static final String PASSWORD_MASK
      See Also:
    • PASSWORD_FIELD_NAMES

      public static final List<String> PASSWORD_FIELD_NAMES
      List of fields which require masking/encrypting.

      Notice: updating this list will require re-encrypting of some data stored in Bamboo (e.g. variables and shared credentials).

    • URL_PASSWORD_PATTERN

      public static final Pattern URL_PASSWORD_PATTERN
      Regular expression for replacing passwords in URLs. Search for content between ':' and '@' after protocol declaration.

      Pattern: [protocol]://[user]:[password]@[remainingUri]

    • SHOULD_VARIABLE_BE_MASKED

      public static Predicate<VariableDefinitionContext> SHOULD_VARIABLE_BE_MASKED
  • Method Details

    • isMasked

      public static boolean isMasked(@Nullable @Nullable String value)
    • shouldBeMasked

      public static boolean shouldBeMasked(@Nullable @Nullable String variableName)
    • shouldBeMasked

      public static boolean shouldBeMasked(@NotNull @NotNull VariableDefinition variableDefinition)
    • shouldBeMasked

      public static boolean shouldBeMasked(@NotNull @NotNull VariableDefinitionContext variableDefinition)
    • shouldBeMasked

      public static boolean shouldBeMasked(@NotNull @NotNull VariableSubstitutionContext variableSubstitutionContext)
    • shouldIgnoreValue

      public static boolean shouldIgnoreValue(String key, String value)
    • maskPasswordValues

      public static <T extends VariableDefinitionContext> Collection<? extends T> maskPasswordValues(@NotNull @NotNull Collection<T> variables, @NotNull @NotNull Function<? super T,? extends T> clone)
    • mask

      public static String mask(@NotNull @NotNull String string, @Nullable @Nullable String password)
      Mask a password portion of a larger string. e.g. passwords in git urls.
      Parameters:
      string - to find and replace the password in
      password - to find in the given string
      Returns:
      string with the password replaced with a mask
    • mask

      public static String mask(@NotNull @NotNull String string, @Nullable @Nullable Iterable<String> passwords)
      Mask a password portion of a larger string. e.g. passwords in git urls.
      Parameters:
      string - to find and replace the password in
      passwords - to find in the given string
      Returns:
      string with the password replaced with a mask
    • findPossiblePasswordValues

      public static Iterable<String> findPossiblePasswordValues(Collection<VariableDefinitionContext> variables)
    • maskPossiblePasswordValues

      public static String maskPossiblePasswordValues(String text, VariableContext variableContext)
    • maskUrlPassword

      @NotNull public static @NotNull String maskUrlPassword(@NotNull @NotNull String url)
      Masks password used in URL. For example, for http://user:password@example.com will return http://user:********@example.com.
      Parameters:
      url - URL as string
      Returns:
      URL with masked password if password was found, unmodified URL otherwise
    • getPasswordFromUrl

      @Nullable public static @Nullable String getPasswordFromUrl(@NotNull @NotNull String url)
    • removePasswordVariables

      @NotNull public static @NotNull Map<String,VariableDefinitionContext> removePasswordVariables(@NotNull @NotNull Map<String,VariableDefinitionContext> variables)
    • removePasswordVariables

      @NotNull public static @NotNull Iterable<String> removePasswordVariables(@NotNull @NotNull Iterable<String> variables)
    • removePasswordVariableDefinitions

      @NotNull public static <T extends VariableDefinitionContext> @NotNull Iterable<T> removePasswordVariableDefinitions(@NotNull @NotNull Iterable<T> variables)