/*
* Copyright 2015 Red Hat, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php
*
* You may elect to redistribute this code under either of these licenses.
*/
package io.vertx.ext.auth.mongo;
import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.mongo.MongoClient;
Options configuring Mongo authentication.
Author: Julien Viet Deprecated: This class has been replaced by the class MongoAuthenticationOptions
for authentication and MongoAuthorizationOptions
for authorization
/**
* Options configuring Mongo authentication.
*
* @author <a href="mailto:julien@julienviet.com">Julien Viet</a>
* @deprecated This class has been replaced by the class {@link io.vertx.ext.auth.mongo.MongoAuthenticationOptions} for authentication and {@link io.vertx.ext.auth.mongo.MongoAuthorizationOptions} for authorization
*/
@DataObject(generateConverter = true)
@Deprecated
public class MongoAuthOptions implements io.vertx.ext.auth.AuthOptions {
private boolean shared;
private String datasourceName;
private String collectionName;
private String usernameField;
private String passwordField;
private String roleField;
private String permissionField;
private String usernameCredentialField;
private String saltField;
private HashSaltStyle saltStyle;
private JsonObject config;
public MongoAuthOptions() {
shared = false;
datasourceName = null;
collectionName = MongoAuth.DEFAULT_COLLECTION_NAME;
usernameField = MongoAuth.DEFAULT_USERNAME_FIELD;
passwordField = MongoAuth.DEFAULT_PASSWORD_FIELD;
roleField = MongoAuth.DEFAULT_ROLE_FIELD;
permissionField = MongoAuth.DEFAULT_PERMISSION_FIELD;
usernameCredentialField = MongoAuth.DEFAULT_CREDENTIAL_USERNAME_FIELD;
saltField = MongoAuth.DEFAULT_SALT_FIELD;
saltStyle = null;
}
public MongoAuthOptions(MongoAuthOptions that) {
shared = that.shared;
datasourceName = that.datasourceName;
datasourceName = that.datasourceName;
collectionName = that.collectionName;
usernameField = that.usernameField;
passwordField = that.passwordField;
roleField = that.roleField;
permissionField = that.permissionField;
usernameCredentialField = that.usernameCredentialField;
saltField = that.saltField;
saltStyle = that.saltStyle;
config = that.config != null ? that.config.copy() : null;
}
public MongoAuthOptions(JsonObject json) {
this();
MongoAuthOptionsConverter.fromJson(json, this);
}
@Override
public MongoAuthOptions clone() {
return new MongoAuthOptions(this);
}
@Override
public MongoAuth createProvider(Vertx vertx) {
MongoClient client;
if (shared) {
if (datasourceName != null) {
client = MongoClient.createShared(vertx, config, datasourceName);
} else {
client = MongoClient.createShared(vertx, config);
}
} else {
client = MongoClient.create(vertx, config);
}
JsonObject authConfig = new JsonObject();
MongoAuthOptionsConverter.toJson(this, authConfig);
return MongoAuth.create(client, authConfig);
}
public boolean getShared() {
return shared;
}
Use a shared Mongo client or not.
Params: - shared – true to use a shared client
Returns: a reference to this, so the API can be used fluently
/**
* Use a shared Mongo client or not.
*
* @param shared true to use a shared client
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setShared(boolean shared) {
this.shared = shared;
return this;
}
public String getDatasourceName() {
return datasourceName;
}
The mongo data source name: see Mongo Client documentation.
Params: - datasourceName – the data source name
Returns: a reference to this, so the API can be used fluently
/**
* The mongo data source name: see Mongo Client documentation.
*
* @param datasourceName the data source name
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setDatasourceName(String datasourceName) {
this.datasourceName = datasourceName;
return this;
}
public JsonObject getConfig() {
return config;
}
The mongo client configuration: see Mongo Client documentation.
Params: - config – the mongo config
Returns: a reference to this, so the API can be used fluently
/**
* The mongo client configuration: see Mongo Client documentation.
*
* @param config the mongo config
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setConfig(JsonObject config) {
this.config = config;
return this;
}
public String getCollectionName() {
return collectionName;
}
The property name to be used to set the name of the collection inside the config.
Params: - collectionName – the collection name
Returns: a reference to this, so the API can be used fluently
/**
* The property name to be used to set the name of the collection inside the config.
*
* @param collectionName the collection name
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setCollectionName(String collectionName) {
this.collectionName = collectionName;
return this;
}
public String getUsernameField() {
return usernameField;
}
The property name to be used to set the name of the field, where the username is stored inside.
Params: - usernameField – the username field
Returns: a reference to this, so the API can be used fluently
/**
* The property name to be used to set the name of the field, where the username is stored inside.
*
* @param usernameField the username field
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setUsernameField(String usernameField) {
this.usernameField = usernameField;
return this;
}
public String getPasswordField() {
return passwordField;
}
The property name to be used to set the name of the field, where the password is stored inside
Params: - passwordField – the password field
Returns: a reference to this, so the API can be used fluently
/**
* The property name to be used to set the name of the field, where the password is stored inside
*
* @param passwordField the password field
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setPasswordField(String passwordField) {
this.passwordField = passwordField;
return this;
}
public String getRoleField() {
return roleField;
}
The property name to be used to set the name of the field, where the roles are stored inside.
Params: - roleField – the role field
Returns: a reference to this, so the API can be used fluently
/**
* The property name to be used to set the name of the field, where the roles are stored inside.
*
* @param roleField the role field
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setRoleField(String roleField) {
this.roleField = roleField;
return this;
}
public String getPermissionField() {
return permissionField;
}
The property name to be used to set the name of the field, where the permissions are stored inside.
Params: - permissionField – the permission field
Returns: a reference to this, so the API can be used fluently
/**
* The property name to be used to set the name of the field, where the permissions are stored inside.
*
* @param permissionField the permission field
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setPermissionField(String permissionField) {
this.permissionField = permissionField;
return this;
}
public String getUsernameCredentialField() {
return usernameCredentialField;
}
The property name to be used to set the name of the field, where the username for the credentials is stored inside.
Params: - usernameCredentialField – the username credential field
Returns: a reference to this, so the API can be used fluently
/**
* The property name to be used to set the name of the field, where the username for the credentials is stored inside.
*
* @param usernameCredentialField the username credential field
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setUsernameCredentialField(String usernameCredentialField) {
this.usernameCredentialField = usernameCredentialField;
return this;
}
public String getSaltField() {
return saltField;
}
The property name to be used to set the name of the field, where the SALT is stored inside.
Params: - saltField – the salt field
Returns: a reference to this, so the API can be used fluently
/**
* The property name to be used to set the name of the field, where the SALT is stored inside.
*
* @param saltField the salt field
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setSaltField(String saltField) {
this.saltField = saltField;
return this;
}
public HashSaltStyle getSaltStyle() {
return saltStyle;
}
The property name to be used to set the name of the field, where the salt style is stored inside
Params: - saltStyle – the salt style
Returns: a reference to this, so the API can be used fluently
/**
* The property name to be used to set the name of the field, where the salt style is stored inside
*
* @param saltStyle the salt style
* @return a reference to this, so the API can be used fluently
*/
public MongoAuthOptions setSaltStyle(HashSaltStyle saltStyle) {
this.saltStyle = saltStyle;
return this;
}
}