Package hudson.util
Class Secret
java.lang.Object
hudson.util.Secret
- All Implemented Interfaces:
Serializable
Glorified
String
that uses encryption in the persisted form, to avoid accidental exposure of a secret.
This is not meant as a protection against code running in the same VM, nor against an attacker who has local file system access on Jenkins master.
Secret
s can correctly read-in plain text password, so this allows the existing
String field to be updated to Secret
.
- Author:
- Kohsuke Kawaguchi
- See Also:
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionstatic final boolean
static boolean
static final Pattern
Pattern matching a possible output ofgetEncryptedValue()
Basically, any Base64-encoded value optionally wrapped by{}
. -
Method Summary
Modifier and TypeMethodDescriptionstatic Secret
Reverse operation ofgetEncryptedValue()
.boolean
static Secret
fromString
(String data) Attempts to treat the given string first as a cipher text, and if it doesn't work, treat the given string as the unencrypted secret value.static Cipher
Workaround for JENKINS-6459 / GLASSFISH-11862 This method uses specific provider selected via hudson.util.Secret.provider system property to provide a workaround for the above bug where default provide gives an unusable instance.Encryptsvalue
and returns it in an encoded printable form.Obtains the plain text password.int
hashCode()
toString()
Deprecated.static String
Works just liketoString()
but avoids NPE when the secret is null.
-
Field Details
-
ENCRYPTED_VALUE_PATTERN
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static final Pattern ENCRYPTED_VALUE_PATTERNPattern matching a possible output ofgetEncryptedValue()
Basically, any Base64-encoded value optionally wrapped by{}
. You must then calldecrypt(String)
to eliminate false positives.- See Also:
-
AUTO_ENCRYPT_PASSWORD_CONTROL
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static final boolean AUTO_ENCRYPT_PASSWORD_CONTROL -
BLANK_NONSECRET_PASSWORD_FIELDS_WITHOUT_ITEM_CONFIGURE
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static boolean BLANK_NONSECRET_PASSWORD_FIELDS_WITHOUT_ITEM_CONFIGURE
-
-
Method Details
-
toString
Deprecated.as of 1.356 UsetoString(Secret)
to avoid NPE in case Secret is null. Or if you really know what you are doing, use thegetPlainText()
method.Obtains the secret in a plain text. -
getPlainText
Obtains the plain text password. Before using this method, ask yourself if you'd be better off usingtoString(Secret)
to avoid NPE. -
equals
-
hashCode
public int hashCode() -
getEncryptedValue
Encryptsvalue
and returns it in an encoded printable form.- See Also:
-
decrypt
Reverse operation ofgetEncryptedValue()
. Returns null if the given cipher text was invalid. -
getCipher
Workaround for JENKINS-6459 / GLASSFISH-11862 This method uses specific provider selected via hudson.util.Secret.provider system property to provide a workaround for the above bug where default provide gives an unusable instance. (Glassfish Enterprise users should set value of this property to "SunJCE")- Throws:
GeneralSecurityException
-
fromString
Attempts to treat the given string first as a cipher text, and if it doesn't work, treat the given string as the unencrypted secret value.Useful for recovering a value from a form field.
-
toString
Works just liketoString()
but avoids NPE when the secret is null. To be consistent withfromString(String)
, this method doesn't distinguish empty password and null password.
-
toString(Secret)
to avoid NPE in case Secret is null.