Class SecretAuthentication
- java.lang.Object
-
- org.eclipse.aether.util.repository.SecretAuthentication
-
- All Implemented Interfaces:
Authentication
final class SecretAuthentication extends java.lang.Object implements Authentication
Authentication block that manages a single authentication key and its secret string value (password, passphrase). UnlikeStringAuthentication
, the string value is kept in an encrypted buffer and only decrypted when needed to reduce the potential of leaking the secret in a heap dump.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
key
private static java.lang.Object[]
KEYS
private int
secretHash
private char[]
value
-
Constructor Summary
Constructors Modifier Constructor Description private
SecretAuthentication(char[] value, java.lang.String key)
(package private)
SecretAuthentication(java.lang.String key, char[] value)
(package private)
SecretAuthentication(java.lang.String key, java.lang.String value)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static void
clear(char[] chars)
private static char[]
copy(char[] chars)
void
digest(AuthenticationDigest digest)
Updates the given digest with data from this authentication callback.boolean
equals(java.lang.Object obj)
void
fill(AuthenticationContext context, java.lang.String key, java.util.Map<java.lang.String,java.lang.String> data)
Fills the given authentication context with the data from this authentication callback.int
hashCode()
java.lang.String
toString()
private char[]
xor(char[] chars)
-
-
-
Method Detail
-
copy
private static char[] copy(char[] chars)
-
xor
private char[] xor(char[] chars)
-
clear
private static void clear(char[] chars)
-
fill
public void fill(AuthenticationContext context, java.lang.String key, java.util.Map<java.lang.String,java.lang.String> data)
Description copied from interface:Authentication
Fills the given authentication context with the data from this authentication callback. To do so, implementors have to callAuthenticationContext.put(String, Object)
.
Thekey
parameter supplied to this method acts merely as a hint for interactive callbacks that want to prompt the user for only that authentication data which is required. Implementations are free to ignore this parameter and put all the data they have into the authentication context at once.- Specified by:
fill
in interfaceAuthentication
- Parameters:
context
- The authentication context to populate, must not benull
.key
- The key denoting a specific piece of authentication data that is being requested for a network operation, may benull
.data
- Any (read-only) extra data in form of key value pairs that might be useful when getting the authentication data, may benull
.
-
digest
public void digest(AuthenticationDigest digest)
Description copied from interface:Authentication
Updates the given digest with data from this authentication callback. To do so, implementors have to call theupdate()
methods inAuthenticationDigest
.- Specified by:
digest
in interfaceAuthentication
- Parameters:
digest
- The digest to update, must not benull
.
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-