@Immutable public final class MongoCredential extends Object
Modifier and Type | Field | Description |
---|---|---|
static String |
CANONICALIZE_HOST_NAME_KEY |
Mechanism property key for specifying whether to canonicalize the host name for GSSAPI authentication.
|
static String |
GSSAPI_MECHANISM |
The GSSAPI mechanism.
|
static String |
JAVA_SASL_CLIENT_PROPERTIES_KEY |
Mechanism property key for overriding the SaslClient properties for GSSAPI authentication.
|
static String |
JAVA_SUBJECT_KEY |
Mechanism property key for overriding the
Subject under which GSSAPI authentication executes. |
static String |
MONGODB_CR_MECHANISM |
Deprecated.
This mechanism was replaced by
SCRAM_SHA_1_MECHANISM in MongoDB 3.0, and is now deprecated |
static String |
MONGODB_X509_MECHANISM |
The MongoDB X.509
|
static String |
PLAIN_MECHANISM |
The PLAIN mechanism.
|
static String |
SCRAM_SHA_1_MECHANISM |
The SCRAM-SHA-1 Mechanism.
|
static String |
SCRAM_SHA_256_MECHANISM |
The SCRAM-SHA-256 Mechanism.
|
static String |
SERVICE_NAME_KEY |
Mechanism property key for overriding the service name for GSSAPI authentication.
|
Modifier and Type | Method | Description |
---|---|---|
static MongoCredential |
createCredential(String userName,
String database,
char[] password) |
Creates a MongoCredential instance with an unspecified mechanism.
|
static MongoCredential |
createGSSAPICredential(String userName) |
Creates a MongoCredential instance for the GSSAPI SASL mechanism.
|
static MongoCredential |
createMongoCRCredential(String userName,
String database,
char[] password) |
Deprecated.
MONGODB-CR was replaced by SCRAM-SHA-1 in MongoDB 3.0, and is now deprecated. Use
the
createCredential(String, String, char[]) factory method instead. |
static MongoCredential |
createMongoX509Credential() |
Creates a MongoCredential instance for the MongoDB X.509 protocol where the distinguished subject name of the client certificate
acts as the userName.
|
static MongoCredential |
createMongoX509Credential(String userName) |
Creates a MongoCredential instance for the MongoDB X.509 protocol.
|
static MongoCredential |
createPlainCredential(String userName,
String source,
char[] password) |
Creates a MongoCredential instance for the PLAIN SASL mechanism.
|
static MongoCredential |
createScramSha1Credential(String userName,
String source,
char[] password) |
Creates a MongoCredential instance for the SCRAM-SHA-1 SASL mechanism.
|
static MongoCredential |
createScramSha256Credential(String userName,
String source,
char[] password) |
Creates a MongoCredential instance for the SCRAM-SHA-256 SASL mechanism.
|
boolean |
equals(Object o) |
|
AuthenticationMechanism |
getAuthenticationMechanism() |
Gets the mechanism
|
String |
getMechanism() |
Gets the mechanism
|
<T> T |
getMechanismProperty(String key,
T defaultValue) |
Get the value of the given key to a mechanism property, or defaultValue if there is no mapping.
|
char[] |
getPassword() |
Gets the password.
|
String |
getSource() |
Gets the source of the user name, typically the name of the database where the user is defined.
|
String |
getUserName() |
Gets the user name
|
int |
hashCode() |
|
String |
toString() |
|
MongoCredential |
withMechanism(AuthenticationMechanism mechanism) |
Creates a new MongoCredential with the set mechanism.
|
<T> MongoCredential |
withMechanismProperty(String key,
T value) |
Creates a new MongoCredential as a copy of this instance, with the specified mechanism property added.
|
@Deprecated public static final String MONGODB_CR_MECHANISM
SCRAM_SHA_1_MECHANISM
in MongoDB 3.0, and is now deprecatedpublic static final String MONGODB_X509_MECHANISM
public static final String SCRAM_SHA_1_MECHANISM
public static final String SCRAM_SHA_256_MECHANISM
public static final String SERVICE_NAME_KEY
createGSSAPICredential(String)
,
withMechanismProperty(String, Object)
,
Constant Field Valuespublic static final String CANONICALIZE_HOST_NAME_KEY
createGSSAPICredential(String)
,
withMechanismProperty(String, Object)
,
Constant Field Valuespublic static final String JAVA_SASL_CLIENT_PROPERTIES_KEY
Map<String, Object>
. In most cases there is no need to set this mechanism property.
But if an application does:
Sasl.CREDENTIALS
property to an instance of
GSSCredential
.Sasl.MAX_BUFFER
property to "0" to ensure compatibility with all
versions of MongoDB.createGSSAPICredential(String)
,
withMechanismProperty(String, Object)
,
Sasl
,
Sasl.CREDENTIALS
,
Sasl.MAX_BUFFER
,
Constant Field Valuespublic static final String JAVA_SUBJECT_KEY
Subject
under which GSSAPI authentication executes.createGSSAPICredential(String)
,
withMechanismProperty(String, Object)
,
Constant Field Valuespublic static MongoCredential createCredential(String userName, String database, char[] password)
If the server version is 4.0 or higher, the driver will negotiate with the server preferring the SCRAM-SHA-256 mechanism. 3.x servers will authenticate using SCRAM-SHA-1, older servers will authenticate using the MONGODB_CR mechanism.
userName
- the user namedatabase
- the database where the user is definedpassword
- the user's passwordpublic static MongoCredential createScramSha1Credential(String userName, String source, char[] password)
createCredential(String, String, char[])
method to allow the driver to
negotiate the best mechanism based on the server version.userName
- the non-null user namesource
- the source where the user is defined.password
- the non-null user passwordcreateCredential(String, String, char[])
public static MongoCredential createScramSha256Credential(String userName, String source, char[] password)
userName
- the non-null user namesource
- the source where the user is defined.password
- the non-null user passwordcreateCredential(String, String, char[])
@Deprecated public static MongoCredential createMongoCRCredential(String userName, String database, char[] password)
createCredential(String, String, char[])
factory method instead.createCredential(String, String, char[])
method to allow the driver to
negotiate the best mechanism based on the server version.userName
- the user namedatabase
- the database where the user is definedpassword
- the user's passwordcreateCredential(String, String, char[])
public static MongoCredential createMongoX509Credential(String userName)
public static MongoCredential createMongoX509Credential()
Available on MongoDB server versions >= 3.4.
public static MongoCredential createPlainCredential(String userName, String source, char[] password)
public static MongoCredential createGSSAPICredential(String userName)
To override the default service name of "mongodb"
, add a mechanism property with the name "SERVICE_NAME"
.
To force canonicalization of the host name prior to authentication, add a mechanism property with the name
"CANONICALIZE_HOST_NAME"
with the valuetrue
.
To override the Subject
with which the authentication executes, add a mechanism property with the name
"JAVA_SUBJECT"
with the value of a Subject
instance.
To override the properties of the SaslClient
with which the authentication executes, add a mechanism
property with the name "JAVA_SASL_CLIENT_PROPERTIES"
with the value of a Map<String, Object
instance containing the
necessary properties. This can be useful if the application is customizing the default
SaslClientFactory
.
userName
- the non-null user namewithMechanismProperty(String, Object)
,
SERVICE_NAME_KEY
,
CANONICALIZE_HOST_NAME_KEY
,
JAVA_SUBJECT_KEY
,
JAVA_SASL_CLIENT_PROPERTIES_KEY
public <T> MongoCredential withMechanismProperty(String key, T value)
T
- the property typekey
- the key to the property, which is treated as case-insensitivevalue
- the value of the propertypublic MongoCredential withMechanism(AuthenticationMechanism mechanism)
mechanism
- the mechanism to set@Nullable public AuthenticationMechanism getAuthenticationMechanism()
public String getSource()
@Nullable public char[] getPassword()
@Nullable public <T> T getMechanismProperty(String key, @Nullable T defaultValue)
T
- the value typekey
- the mechanism property key, which is treated as case-insensitivedefaultValue
- the default value, if no mapping exists