Class PasswordMaskingUtils


  • public class PasswordMaskingUtils
    extends Object
    • Field Detail

      • 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 com.google.common.base.Predicate<VariableDefinitionContext> SHOULD_VARIABLE_BE_MASKED
    • Method Detail

      • 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)
      • shouldIgnoreValue

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

        public static <T extends VariableDefinitionContextCollection<? extends T> maskPasswordValues​(@NotNull
                                                                                                       @NotNull Collection<T> variables,
                                                                                                       @NotNull
                                                                                                       @NotNull com.google.common.base.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
      • 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 Iterable<String> removePasswordVariables​(@NotNull
                                                                        @NotNull Iterable<String> variables)