Clase: Mongo::Auth::User

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Registrable
Definido en:
lib/mongo/auth/user.rb,
lib/mongo/auth/user/view.rb

Overview

Representa a un usuario en MongoDB.

Desde:

  • 2.0.0

Definido bajo Namespace

clase: vista

Resumen constante

Constantes incluidas desde Loggable

Loggable::PREFIX

Resumen de atributos de la instancia colapsar

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Métodos incluidos desde Registrable

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

Detalles del Constructor

#inicializar(opciones) ⇒ Usuario

Crea el nuevo usuario.

Ejemplos:

Crear un usuario nuevo.

Mongo::Auth::User.new(options)

Parámetros:

  • opciones (encriptada)

    Las opciones para crear el usuario.

Opciones Hash (options):

  • origen_de_autenticación (string)

    La base de datos de autorización o fuente externa.

  • :database (string)

    La base de datos para la que el usuario está autorizado.

  • Usuario/a (string)

    El nombre de usuario.

  • :contraseña (string)

    La contraseña del usuario.

  • :pwd (string)

    Opción heredada para la contraseña del usuario. Si se especifican tanto :password como :pwd, :password tiene prioridad.

  • auth_mech (Símbolo)

    El mecanismo de autorización.

  • Roles (arreglo<String>, arreglo<Hash>)

    Los roles de usuario.

Desde:

  • 2.0.0



158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# archivo 'lib/mongo/auth/user.rb', line 158

def inicializar(opciones)
  @database = opciones[:database] || Database::ADMIN
  @auth_source = opciones[origen_de_autenticación] || sí mismo.clase.default_auth_source(opciones)
  @name = opciones[Usuario/a]
  @password = opciones[:contraseña] || opciones[:pwd]
  @mechanism = opciones[auth_mech]
  si @mechanism
    # Puesto que el controlador debe seleccionar una clase de autenticación para
    # el mecanismo especificado, mecanismos que el controlador no
    # conozca y no se pueda traducir a una clase de autenticación,
    # deben ser rechazadas.
    a menos que @mechanism.is_a?(Símbolo)
      # Aunque documentamos la opción auth_mech como un símbolo, nosotros
      # no se ha aplicado esto; advertir, rechazar en modo lint
      si Lint.¿habilitado?
        propagar Error::LintError, "Mecanismo de autenticación #{@mechanism.inspect} debe especificarse como un símbolo"
      end

      log_warn("Mecanismo de autenticación #{@mechanism.inspect} debe especificarse como un símbolo")
      @mechanism = @mechanism.to_sym

    end
    propagar InvalidMechanism.Nuevo(opciones[auth_mech]) a menos que Autenticación::FUENTES.key?(@mechanism)
  end
  @auth_mech_properties = opciones[propiedades_mecánica_autenticación] || {}
  @roles = opciones[rol] || []
end

Detalles de atributo de instancias

#auth_mech_propertiesHash (solo lectura)

Devuelve Las propiedades del mecanismo de autenticación.

Devuelve:

  • (encriptada)

    Las propiedades del mecanismo de autenticación.

Desde:

  • 2.0.0



35
36
37
# archivo 'lib/mongo/auth/user.rb', line 35

def auth_mech_properties
  @auth_mech_properties
end

#auth_sourceString (solo lectura)

Devuelve La fuente de autorización, ya sea una base de datos o un nombre externo.

Devuelve:

  • (string)

    El origen de autorización, ya sea una base de datos o un nombre externo.

Desde:

  • 2.0.0



29
30
31
# archivo 'lib/mongo/auth/user.rb', line 29

def auth_source
  @auth_source
end

#base de datosString (solo lectura)

Retorna la base de datos en la que se crea el usuario.

Devuelve:

  • (string)

    La base de datos en la que se crea el usuario.

Desde:

  • 2.0.0



32
33
34
# archivo 'lib/mongo/auth/user.rb', line 32

def database
  @database
end

#mecanismoSímbolo (solo lectura)

Devuelve el mecanismo de autorización.

Devuelve:

  • (Símbolo)

    El mecanismo de autorización.

Desde:

  • 2.0.0



38
39
40
# archivo 'lib/mongo/auth/user.rb', line 38

def mecanismo
  @mechanism
end

#nombrestring (solo lectura)

Devuelve el nombre de usuario.

Devuelve:

  • (string)

    El nombre de usuario.

Desde:

  • 2.0.0



41
42
43
# archivo 'lib/mongo/auth/user.rb', line 41

def Nombre
  @name
end

#contraseñastring (solo lectura)

Devuelve la contraseña en texto abierto.

Devuelve:

  • (string)

    La password en texto sin cifrar.

Desde:

  • 2.0.0



44
45
46
# archivo 'lib/mongo/auth/user.rb', line 44

def Contraseña
  @password
end

#rolesArray<String> (solo lectura)

Devuelve los roles Los roles del usuario.

Devuelve:

  • (arreglo<String>)

    roles Los roles de usuario.

Desde:

  • 2.0.0



47
48
49
# archivo 'lib/mongo/auth/user.rb', line 47

def Roles
  @roles
end

Detalles del método de clase

.default_auth_source(opciones) ⇒ Objeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Generar el origen de autenticación por defecto en función del URI y las opciones

Desde:

  • 2.0.0



203
204
205
206
207
208
209
210
211
212
# archivo 'lib/mongo/auth/user.rb', line 203

def sí mismo.default_auth_source(opciones)
  caso opciones[auth_mech]
  cuando aws, :gssapi, :mongodb_x509
    '$external'
  cuando :plain
    opciones[:database] || '$external'
  else
    opciones[:database] || Database::ADMIN
  end
end

Detalles del método de instancia

#==(otro) ⇒ true, false

Determina si este usuario es igual a otro.

Ejemplos:

Comprobar la igualdad de los usuarios.

user == other

Parámetros:

  • Otros (objeto)

    El objeto a comparar.

Devuelve:

  • (true, false)

    Si los objetos son iguales.

Desde:

  • 2.0.0



67
68
69
70
71
# archivo 'lib/mongo/auth/user.rb', line 67

def ==(Otros)
  return false a menos que Otros.is_a?(Usuario)

  Nombre == Otros.Nombre && database == Otros.database && Contraseña == Otros.Contraseña
end

#auth_key(nonce) ⇒ String

Obtenga una clave de autenticación para el usuario basada en un nonce del servidor.

Ejemplos:

Obtén la clave de autenticación.

user.auth_key(nonce)

Parámetros:

  • nonce (string)

    La respuesta del servidor.

Devuelve:

  • (string)

    La clave de autenticación.

Desde:

  • 2.0.0



84
85
86
# archivo 'lib/mongo/auth/user.rb', line 84

def clave_de_autenticación(nonce)
  Resumen::md5.hexdigest("#{nonce}#{name}#{hashed_password}")
end

#encoded_nameString

Obtén el nombre codificado en UTF-8 con caracteres especiales escapados para usar con la autorización SCRAM.

Ejemplos:

Obtén el nombre encriptado.

user.encoded_name

Devuelve:

  • (string)

    El nombre de usuario codificado.

Desde:

  • 2.0.0



97
98
99
# archivo 'lib/mongo/auth/user.rb', line 97

def nombre_codificado
  Nombre.encode(BSON::UTF8).gsub('=', '=3D').gsub(',', '=2C')
end

#hashString

Obtener la clave hash del usuario.

Ejemplos:

Obtenga la clave hash.

user.hash

Devuelve:

  • (string)

    La clave hash de usuario.

Desde:

  • 2.0.0



109
110
111
# archivo 'lib/mongo/auth/user.rb', line 109

def hash
  [ Nombre, database, Contraseña ].hash
end

#hashed_passwordString

Obtén la contraseña encriptada del usuario para SCRAM-SHA-1.

Ejemplos:

Obtener la contraseña encriptada del usuario.

user.hashed_password

Devuelve:

  • (string)

    La contraseña encriptada.

Aumenta:

Desde:

  • 2.0.0



121
122
123
124
125
# archivo 'lib/mongo/auth/user.rb', line 121

def hashed_password
  propagar Error::ClaveFaltante a menos que Contraseña

  @hashed_password ||= Resumen::md5.hexdigest("#{nombre}:mongo:#{contraseña}").encode(BSON::UTF8)
end

#opcionesObjeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Loggable requiere un atributo de opciones. No tenemos ninguna opción, por eso lo proporcionamos como base.

Desde:

  • 2.0.0



53
54
55
# archivo 'lib/mongo/auth/user.rb', line 53

def opciones
  {}
end

#sasl_prepped_passwordobjeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Obtén la contraseña stringprepped del usuario para SCRAM-SHA-256.

Aumenta:

Desde:

  • 2.0.0



130
131
132
133
134
135
136
137
# archivo 'lib/mongo/auth/user.rb', line 130

def sasl_prepped_password
  propagar Error::ClaveFaltante a menos que Contraseña

  @sasl_prepped_password ||= StringPrep.prepare(Contraseña,
                                                StringPrep::Perfiles::SASL::Mapeos,
                                                StringPrep::Perfiles::SASL::PROHIBIDO,
                                                normalizar: true, bidi: true).encode(BSON::UTF8)
end

#specHash

Obtener la especificación para el usuario, utilizada en la creación.

Ejemplos:

Obtener las especificaciones del usuario.

user.spec

Devuelve:

  • (encriptada)

    La especificación del usuario.

Desde:

  • 2.0.0



194
195
196
197
198
# archivo 'lib/mongo/auth/user.rb', line 194

def especificación
  { rol: Roles }.tocar hacer |especificación|
    especificación[:pwd] = Contraseña si Contraseña
  end
end