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 bajo Namespace

Clases: vista

Resumen constante

Constantes incluidas desde Loggable

Registrable::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 (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/a (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 tanto :password como :pwd están especificados, :password tiene prioridad.

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

    El mecanismo de autorización.

  • Roles (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', line 163

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[:mecánica de autenticación]
  si @mechanism
    # Puesto 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 rechazadas.
    a menos que @mechanism.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.¿habilitado?
        propagar Error::LintError, "Mecanismo de autenticación #{@mechanism.inspect} debe especificarse como un símbolo"
      else
        advertencia de registro("Mecanismo de autenticación #{@mechanism.inspect} debe especificarse como un símbolo")
        @mechanism = @mechanism.to_sym
      end
    end
    a menos que Autenticación::FUENTES.key?(@mechanism)
      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[rol] || []
end

Detalles de los atributos de instancia

#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



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

def propiedades de auth_mech
  @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)

    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', line 31

def fuente de autenticación
  @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



34
35
36
# archivo 'lib/mongo/auth/user.rb', line 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', line 40

def mecanismo
  @mechanism
end

#nombrestring (solo lectura)

Devuelve el nombre de usuario.

Devuelve:

  • (string)

    El nombre de usuario.

Desde:

  • 2.0.0



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

def Nombre
  @name
end

#contraseñaCadena (solo lectura)

Devuelve la contraseña en texto abierto.

Devuelve:

  • (string)

    La password en texto sin cifrar.

Desde:

  • 2.0.0



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

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



49
50
51
# archivo 'lib/mongo/auth/user.rb', line 49

def Roles
  @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 el origen de autenticación por defecto en función del URI y las opciones

Desde:

  • 2.0.0



213
214
215
216
217
218
219
220
221
222
# archivo 'lib/mongo/auth/user.rb', line 213

def sí mismo.default_auth_source(opciones)
  caso opciones[:mecánica de autenticación]
  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

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', line 69

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:

Obtenga la clave de autenticación.

user.auth_key(nonce)

Parámetros:

  • mientras tanto (string)

    La respuesta del servidor.

Devuelve:

  • (string)

    La clave de autenticación.

Desde:

  • 2.0.0



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

def clave de autenticación(mientras tanto)
  Resumen::md5.hexdigest("#{nonce}#{name}#{hashed_password}")
end

#encoded_nameString

Obtenga 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



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

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



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

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

#hash_passwordCadena

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

Ejemplos:

Obtenga la contraseña en hash del usuario.

user.hashed_password

Devuelve:

  • (string)

    La contraseña encriptada.

Desde:

  • 2.0.0



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

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

  @hashed_password ||= 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 ninguna opción, por lo que lo proporcionamos como un stub.

Desde:

  • 2.0.0



55
56
57
# archivo 'lib/mongo/auth/user.rb', line 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', line 133

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

  @sasl_prepped_password ||= StringPrep.prepare(Contraseña,
    StringPrep::Perfiles::SASL::Mapeos,
    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:

Obtener la especificación del usuario.

user.spec

Devuelve:

  • (encriptada)

    La especificación del usuario.

Desde:

  • 2.0.0



200
201
202
203
204
205
206
# archivo 'lib/mongo/auth/user.rb', line 200

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