Clase: Mongo::Auth::User

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Registrable
Definido en:

lib/mongo/auth/usuario.rb, lib/mongo/auth/usuario/vista.rb

Overview

Representa un usuario en MongoDB.

Desde:

  • 2.0.0

Definido en el espacio de nombres

Clases: vista

Resumen constante

Constantes incluidas desde Loggable

Registrable::PREFIX

Colapso delresumen de atributos de instancia

Colapso delresumen del método de clase

Colapso del resumen del método de instancia

Métodos incluidos en Loggable

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

Detalles del constructor

#inicializar(opciones) ⇒ Usuario

Crea el nuevo usuario.

Ejemplos:

Crear un nuevo usuario.

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

Parámetros:

  • opciones (Hash)

    Las opciones para crear el usuario.

Opciones Hash(opciones):

  • :fuente_de_autorización (Cadena)

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

  • :database (Cadena)

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

  • :usuario (Cadena)

    El nombre de usuario.

  • :contraseña (Cadena)

    La contraseña del usuario.

  • :pwd (Cadena)

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

  • :mecánica de autenticación (Símbolo)

    El mecanismo de autorización.

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

    Los roles de usuario.

Desde:

  • 2.0.0



163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# Archivo 'lib/mongo/auth/user.rb', línea 163

def inicializar(opciones)
  @database = opciones[:database] || Database::ADMINISTRACIÓN
  @auth_source = opciones[:fuente_de_autorización] || yo.clase.default_auth_source(opciones)
  @name = opciones[:usuario]
  @password = opciones[:contraseña] || opciones[:pwd]
  @mecanismo = opciones[:mecánica de autenticación]
  Si @mecanismo
    # Dado que el controlador debe seleccionar una clase de autenticación para
    # el mecanismo especificado, mecanismos que el controlador no
    # sabe acerca de, y no puede traducir a una clase de autenticación,
    # deben ser rechazados.
    a no ser que @mecanismo.is_a?(Símbolo)
      # Aunque documentamos la opción auth_mech como un símbolo,
      # no se ha aplicado esto; advertir, rechazar en modo lint
      Si Lint.¿activado?
        propagar Error::LintError, "Elmecanismo de autenticación #{@mechanism.inspect} debe especificarse como unsímbolo"
      else
        advertencia de registro("Elmecanismo de autenticación #{@mechanism.inspect} debe especificarse como unsímbolo")
        @mecanismo = @mecanismo.a_sym
      end
    end
    a no ser que Auth::FUENTES.key?(@mecanismo)
      propagar Mecanismo inválido.Nuevo(opciones[:mecánica de autenticación])
    end
  end
  @auth_mech_properties = opciones[:propiedades_mecánicas_de_autenticación] || {}
  @roles = opciones[:roles] || []
end

Detalles de los atributos de instancia

#auth_mech_propertiesHash (solo lectura)

Devuelve las propiedades del mecanismo de autenticación.

Devuelve:

  • (Hash)

    Las propiedades del mecanismo de autenticación.

Desde:

  • 2.0.0



37
38
39
# Archivo 'lib/mongo/auth/user.rb', línea 37

def propiedades de auth_mech
  @auth_mech_properties
end

#auth_sourceCadena (solo lectura)

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

Devuelve:

  • (Cadena) -

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

Desde:

  • 2.0.0



31
32
33
# Archivo 'lib/mongo/auth/user.rb', línea 31

def fuente de autenticación
  @auth_source
end

#base de datosString (solo lectura)

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

Devuelve:

  • (Cadena) -

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

Desde:

  • 2.0.0



34
35
36
# Archivo 'lib/mongo/auth/user.rb', línea 34

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



40
41
42
# Archivo 'lib/mongo/auth/user.rb', línea 40

def mecanismo
  @mecanismo
end

#nombreCadena (solo lectura)

Devuelve el nombre de usuario.

Devuelve:

  • (Cadena) -

    El nombre de usuario.

Desde:

  • 2.0.0



43
44
45
# Archivo 'lib/mongo/auth/user.rb', línea 43

def Nombre
  @name
end

#contraseñaCadena (solo lectura)

Devuelve la contraseña en texto sin formato.

Devuelve:

  • (Cadena) -

    La contraseña en texto claro.

Desde:

  • 2.0.0



46
47
48
# Archivo 'lib/mongo/auth/user.rb', línea 46

def contraseña
  @password
end

#rolesArray<String> (solo lectura)

Devuelve roles Los roles de usuario.

Devuelve:

  • (Matriz<String>)

    roles Los roles de usuario.

Desde:

  • 2.0.0



49
50
51
# Archivo 'lib/mongo/auth/user.rb', línea 49

def papeles
  @roles
end

Detalles del método de clase

.default_auth_source(opciones) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Generar fuente de autenticación predeterminada según la URI y las opciones

Desde:

  • 2.0.0



213
214
215
216
217
218
219
220
221
222
# Archivo 'lib/mongo/auth/user.rb', línea 213

def yo.default_auth_source(opciones)
  caso opciones[:mecánica de autenticación]
  Cuando :aws, :gssapi, :mongodb_x509
    ' $externo '
  Cuando :plano
    opciones[:database] || ' $externo '
  else
    opciones[:database] || Database::ADMINISTRACIÓN
  end
end

Detalles del método de instancia

#==(otro) ⇒ true, false

Determinar si este usuario es igual a otro.

Ejemplos:

Comprobar la igualdad de usuarios.

user == other

Parámetros:

  • otros (Objeto) -

    El objeto a comparar.

Devuelve:

  • (verdadero,falso)

    Si los objetos son iguales.

Desde:

  • 2.0.0



69
70
71
72
# Archivo 'lib/mongo/auth/user.rb', línea 69

def ==(otros)
  return false a no ser que otros.is_a?(Usuario)
  Nombre == otros.Nombre && database == otros.database && contraseña == otros.contraseña
end

#auth_key(nonce) ⇒ Cadena

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

Ejemplos:

Obtenga la clave de autenticación.

user.auth_key(nonce)

Parámetros:

  • mientras tanto (Cadena) -

    La respuesta del servidor.

Devuelve:

  • (Cadena) -

    La clave de autenticación.

Desde:

  • 2.0.0



85
86
87
# Archivo 'lib/mongo/auth/user.rb', línea 85

def clave de autenticación(mientras tanto)
  Resumen::MD5.hexdigest("#{nonce}#{nombre}#{contraseña_hashed}")
end

#nombre_codificadoCadena

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

Ejemplos:

Obtenga el nombre codificado.

user.encoded_name

Devuelve:

  • (Cadena) -

    El nombre de usuario codificado.

Desde:

  • 2.0.0



98
99
100
# Archivo 'lib/mongo/auth/user.rb', línea 98

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

#hashCadena

Obtenga la clave hash del usuario.

Ejemplos:

Obtenga la clave hash.

user.hash

Devuelve:

  • (Cadena) -

    La clave hash del usuario.

Desde:

  • 2.0.0



110
111
112
# Archivo 'lib/mongo/auth/user.rb', línea 110

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

#hash_passwordCadena

Obtenga la contraseña en hash del usuario para SCRAM-SHA-1.

Ejemplos:

Obtenga la contraseña en hash del usuario.

user.hashed_password

Devuelve:

  • (Cadena) -

    La contraseña encriptada.

Desde:

  • 2.0.0



122
123
124
125
126
127
128
# Archivo 'lib/mongo/auth/user.rb', línea 122

def contraseña hash
  a no ser que contraseña
    propagar Error::Contraseña faltante
  end

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

#opcionesObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Loggable requiere un atributo de opciones. No tenemos opciones, por lo que lo proporcionamos como un stub.

Desde:

  • 2.0.0



55
56
57
# Archivo 'lib/mongo/auth/user.rb', línea 55

def opciones
  {}
end

#sasl_prepped_passwordObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Obtenga la contraseña preparada en cadena del usuario para SCRAM-SHA-256.

Desde:

  • 2.0.0



133
134
135
136
137
138
139
140
141
142
# Archivo 'lib/mongo/auth/user.rb', línea 133

def contraseña preparada sasl
  a no ser que contraseña
    propagar Error::Contraseña faltante
  end

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

#specHash

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

Ejemplos:

Obtenga la especificación del usuario.

user.spec

Devuelve:

  • (Hash)

    La especificación del usuario.

Desde:

  • 2.0.0



200
201
202
203
204
205
206
# Archivo 'lib/mongo/auth/user.rb', línea 200

def especulación
  {roles: papeles}.grifo hacer |especulación|
    Si contraseña
      especulación[:pwd] = contraseña
    end
  end
end