/*
* Copyright 2008-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mongodb;
import java.util.HashMap;
import java.util.Map;
An enumeration of the MongodDB-supported authentication mechanisms.
Since: 3.0
/**
* An enumeration of the MongodDB-supported authentication mechanisms.
*
* @since 3.0
*/
public enum AuthenticationMechanism {
The GSSAPI mechanism. See the RFC.
/**
* The GSSAPI mechanism. See the <a href="http://tools.ietf.org/html/rfc4752">RFC</a>.
*/
GSSAPI("GSSAPI"),
The PLAIN mechanism. See the RFC.
/**
* The PLAIN mechanism. See the <a href="http://www.ietf.org/rfc/rfc4616.txt">RFC</a>.
*/
PLAIN("PLAIN"),
The MongoDB X.509 mechanism. This mechanism is available only with client certificates over SSL.
/**
* The MongoDB X.509 mechanism. This mechanism is available only with client certificates over SSL.
*/
MONGODB_X509("MONGODB-X509"),
The MongoDB Challenge Response mechanism.
Deprecated: This mechanism was replaced by SCRAM_SHA_1
in MongoDB 3.0, and is now deprecated
/**
* The MongoDB Challenge Response mechanism.
*
* @deprecated This mechanism was replaced by {@link #SCRAM_SHA_1} in MongoDB 3.0, and is now deprecated
*/
@Deprecated
MONGODB_CR("MONGODB-CR"),
The SCRAM-SHA-1 mechanism. See the RFC.
/**
* The SCRAM-SHA-1 mechanism. See the <a href="http://tools.ietf.org/html/rfc5802">RFC</a>.
*/
SCRAM_SHA_1("SCRAM-SHA-1"),
The SCRAM-SHA-256 mechanism. See the RFC.
Since: 3.8
/**
* The SCRAM-SHA-256 mechanism. See the <a href="http://tools.ietf.org/html/rfc7677">RFC</a>.
* @since 3.8
*/
SCRAM_SHA_256("SCRAM-SHA-256");
private static final Map<String, AuthenticationMechanism> AUTH_MAP = new HashMap<String, AuthenticationMechanism>();
private final String mechanismName;
AuthenticationMechanism(final String mechanismName) {
this.mechanismName = mechanismName;
}
Get the mechanism name.
Returns: the mechanism name
/**
* Get the mechanism name.
*
* @return the mechanism name
*/
public String getMechanismName() {
return mechanismName;
}
@Override
public String toString() {
return mechanismName;
}
static {
for (final AuthenticationMechanism value : values()) {
AUTH_MAP.put(value.getMechanismName(), value);
}
}
Gets the mechanism by its name.
Params: - mechanismName – the mechanism name
See Also: Returns: the mechanism
/**
* Gets the mechanism by its name.
*
* @param mechanismName the mechanism name
* @return the mechanism
* @see #getMechanismName()
*/
public static AuthenticationMechanism fromMechanismName(final String mechanismName) {
AuthenticationMechanism mechanism = AUTH_MAP.get(mechanismName);
if (mechanism == null) {
throw new IllegalArgumentException("Unsupported authMechanism: " + mechanismName);
}
return mechanism;
}
}