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 en el espacio de nombres
Clases: vista
Resumen constante
Constantes incluidas desde Loggable
Colapso delresumen de atributos de instancia
-
#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 ⇒ Cadena
solo lectura
El nombre de usuario.
-
#contraseña ⇒ Cadena
solo lectura
La contraseña en texto claro.
-
#roles ⇒ arreglo<String>
solo lectura
Roles Los roles de usuario.
Colapso delresumen del método de clase
-
.default_auth_source(opciones) ⇒ Objeto
privada
Generar fuente de autenticación predeterminada según la URI y las opciones.
Colapso del resumen del método de instancia
-
#==(otro) ⇒ true, false
Determinar si este usuario es igual a otro.
-
#auth_key(nonce) ⇒ Cadena
Obtenga una clave de autenticación para el usuario basada en un nonce del servidor.
-
#nombre_codificado ⇒ Cadena
Obtenga el nombre codificado en UTF-8 con caracteres especiales escapados para usar con la autorización SCRAM.
-
#hash ⇒ Cadena
Obtenga la clave hash del usuario.
-
#hash_password ⇒ Cadena
Obtenga la contraseña en hash del usuario para SCRAM-SHA-1.
-
#inicializar(opciones) ⇒ Usuario
constructor
Crea el nuevo usuario.
-
#opciones ⇒ Objeto
privada
Para poder registrarse se requiere un atributo de opciones.
-
#sasl_prepped_password ⇒ Objeto
privada
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 en Loggable
#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', línea 163 def inicializar() @database = [:database] || Database::ADMINISTRACIÓN @auth_source = [:fuente_de_autorización] || yo.clase.default_auth_source() @name = [:usuario] @password = [:contraseña] || [:pwd] @mecanismo = [: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([:mecánica de autenticación]) end end @auth_mech_properties = [:propiedades_mecánicas_de_autenticación] || {} @roles = [:roles] || [] 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', línea 37 def propiedades de auth_mech @auth_mech_properties end |
#auth_source ⇒ Cadena (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', línea 31 def fuente de autenticación @auth_source end |
#base de datos ⇒ String (solo lectura)
Devuelve la base de datos en la que se crea el usuario.
34 35 36 |
# Archivo 'lib/mongo/auth/user.rb', línea 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', línea 40 def mecanismo @mecanismo end |
#nombre ⇒ Cadena (solo lectura)
Devuelve el nombre de usuario.
43 44 45 |
# Archivo 'lib/mongo/auth/user.rb', línea 43 def Nombre @name end |
#contraseña ⇒ Cadena (solo lectura)
Devuelve la contraseña en texto sin formato.
46 47 48 |
# Archivo 'lib/mongo/auth/user.rb', línea 46 def contraseña @password end |
#roles ⇒ Array<String> (solo lectura)
Devuelve roles Los roles de usuario.
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
213 214 215 216 217 218 219 220 221 222 |
# Archivo 'lib/mongo/auth/user.rb', línea 213 def yo.default_auth_source() caso [:mecánica de autenticación] Cuando :aws, :gssapi, :mongodb_x509 ' $externo ' Cuando :plano [:database] || ' $externo ' else [:database] || Database::ADMINISTRACIÓN 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', 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.
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_codificado ⇒ Cadena
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', línea 98 def nombre_codificado Nombre.encode(BSON::UTF8).gsub('=','=3D').gsub(',','=2C ') end |
#hash ⇒ Cadena
Obtenga la clave hash del usuario.
110 111 112 |
# Archivo 'lib/mongo/auth/user.rb', línea 110 def hash [ Nombre, database, contraseña ].hash end |
#hash_password ⇒ Cadena
Obtenga la contraseña en hash del usuario para SCRAM-SHA-1.
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 |
#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 opciones, por lo que lo proporcionamos como un stub.
55 56 57 |
# Archivo 'lib/mongo/auth/user.rb', línea 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', 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 |
#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', línea 200 def especulación {roles: papeles}.grifo hacer |especulación| Si contraseña especulación[:pwd] = contraseña end end end |