Clase: Mongo::Auth::User
- Hereda:
-
Objeto
- Objeto
- Mongo::Auth::Usuario
- Incluye:
- Registrable
- Definido en:
lib/mongo/auth/usuario.rb, lib/mongo/auth/usuario/vista.rb
Overview
Representa un usuario en MongoDB.
Definido bajo Namespace
Clases: vista
Resumen constante
Constantes incluidas desde Loggable
Resumen de atributos de la instancia colapsar
-
#auth_mech_properties ⇒ Hash
Solo lectura
Las propiedades del mecanismo de autenticación.
-
#auth_source ⇒ String
Solo lectura
La fuente de autorización, ya sea una base de datos o un nombre externo.
-
#database ⇒ String
Solo lectura
La base de datos en la que se crea el usuario.
-
#mecanismo ⇒ Símbolo
Solo lectura
El mecanismo de autorización.
-
#nombre ⇒ String
Solo lectura
El nombre de usuario.
-
#contraseña ⇒ Cadena
Solo lectura
La password en texto sin cifrar.
-
#roles ⇒ arreglo<String>
Solo lectura
Roles Los roles de usuario.
Resumen del método de clase colapsar
-
.default_auth_source(opciones) ⇒ Objeto
privado
Generar fuente de autenticación por defecto en función del URI y las opciones.
Resumen del método de instancia colapsar
-
#==(otro) ⇒ true, false
Determinar si este usuario es igual a otro.
-
#auth_key(nonce) ⇒ string
Obtenga una clave de autenticación para el usuario basada en un nonce del servidor.
-
#encoded_name ⇒ String
Obtenga el nombre codificado en UTF-8 con caracteres especiales escapados para usar con la autorización SCRAM.
-
#hash ⇒ string
Obtener la clave hash del usuario.
-
#hashed_password ⇒ String
Obtén la contraseña encriptada del usuario para SCRAM-SHA-1.
-
#initialize(opciones) ⇒ Usuario
constructor
Crea el nuevo usuario.
-
#opciones ⇒ Objeto
privado
Para poder registrarse se requiere un atributo de opciones.
-
#sasl_prepped_password ⇒ Objeto
privado
Obtenga la contraseña preparada en cadena del usuario para SCRAM-SHA-256.
-
#spec ⇒ Hash
Obtenga la especificación para el usuario, utilizada en la creación.
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.
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() @database = [:database] || Database::ADMIN @auth_source = [origen_de_autenticación] || sí mismo.clase.default_auth_source() @name = [Usuario/a] @password = [:contraseña] || [:pwd] @mechanism = [: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([:mecánica de autenticación]) end end @auth_mech_properties = [:propiedades_mecánicas_de_autenticación] || {} @roles = [rol] || [] end |
Detalles de los atributos de instancia
#auth_mech_properties ⇒ Hash (solo lectura)
Devuelve Las propiedades del mecanismo de autenticación.
37 38 39 |
# archivo 'lib/mongo/auth/user.rb', line 37 def propiedades de auth_mech @auth_mech_properties end |
#auth_source ⇒ String (solo lectura)
Devuelve La fuente de autorización, ya sea una base de datos o un nombre externo.
31 32 33 |
# archivo 'lib/mongo/auth/user.rb', line 31 def fuente de autenticación @auth_source end |
#base de datos ⇒ String (solo lectura)
Retorna la base de datos en la que se crea el usuario.
34 35 36 |
# archivo 'lib/mongo/auth/user.rb', line 34 def database @database end |
#mecanismo ⇒ Símbolo (solo lectura)
Devuelve el mecanismo de autorización.
40 41 42 |
# archivo 'lib/mongo/auth/user.rb', line 40 def mecanismo @mechanism end |
#nombre ⇒ string (solo lectura)
Devuelve el nombre de usuario.
43 44 45 |
# archivo 'lib/mongo/auth/user.rb', line 43 def Nombre @name end |
#contraseña ⇒ Cadena (solo lectura)
Devuelve la contraseña en texto abierto.
46 47 48 |
# archivo 'lib/mongo/auth/user.rb', line 46 def Contraseña @password end |
#roles ⇒ Array<String> (solo lectura)
Devuelve los roles Los roles del usuario.
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
213 214 215 216 217 218 219 220 221 222 |
# archivo 'lib/mongo/auth/user.rb', line 213 def sí mismo.default_auth_source() caso [:mecánica de autenticación] Cuando aws, :gssapi, :mongodb_x509 '$external' Cuando :plain [:database] || '$external' else [:database] || Database::ADMIN end end |
Detalles del método de instancia
#==(otro) ⇒ true, false
Determinar si este usuario es igual a otro.
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.
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_name ⇒ String
Obtenga el nombre codificado en UTF-8 con caracteres especiales escapados para usar con la autorización SCRAM.
98 99 100 |
# archivo 'lib/mongo/auth/user.rb', line 98 def nombre_codificado Nombre.encode(BSON::UTF8).gsub('=','=3D').gsub(',','=2C') end |
#hash ⇒ String
Obtener la clave hash del usuario.
110 111 112 |
# archivo 'lib/mongo/auth/user.rb', line 110 def hash [ Nombre, database, Contraseña ].hash end |
#hash_password ⇒ Cadena
Obtén la contraseña encriptada del usuario para SCRAM-SHA-1.
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 |
#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.
Loggable requiere un atributo de opciones. No tenemos ninguna opción, por lo que lo proporcionamos como un stub.
55 56 57 |
# archivo 'lib/mongo/auth/user.rb', line 55 def {} end |
#sasl_prepped_password ⇒ 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.
Obtenga la contraseña preparada en cadena del usuario para SCRAM-SHA-256.
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 |
#spec ⇒ Hash
Obtenga la especificación para el usuario, utilizada en la creación.
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 |