Clase: Mongo::Auth::User
- Hereda:
-
Objeto
- Objeto
- Mongo::Auth::Usuario
- Incluye:
- Registrable
- Definido en:
- lib/mongo/auth/user.rb,
lib/mongo/auth/user/view.rb
Overview
Representa a un usuario en MongoDB.
Definido bajo Namespace
clase: 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
El origen 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.
-
#mechanism ⇒ Símbolo
Solo lectura
El mecanismo de autorización.
-
#nombre ⇒ String
Solo lectura
El nombre de usuario.
-
#contraseña ⇒ String
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) ⇒ Object
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
Determina 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
Obtén 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
Loggable requiere un atributo de opciones.
-
#sasl_prepped_password ⇒ Objeto
privado
Obtén la contraseña stringprepped del usuario para SCRAM-SHA-256.
-
#spec ⇒ Hash
Obtener 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.
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() @database = [:database] || Database::ADMIN @auth_source = [origen_de_autenticación] || sí mismo.clase.default_auth_source() @name = [Usuario/a] @password = [:contraseña] || [:pwd] @mechanism = [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([auth_mech]) a menos que Autenticación::FUENTES.key?(@mechanism) end @auth_mech_properties = [propiedades_mecánica_autenticación] || {} @roles = [rol] || [] end |
Detalles de atributo de instancias
#auth_mech_properties ⇒ Hash (solo lectura)
Devuelve Las propiedades del mecanismo de autenticación.
35 36 37 |
# archivo 'lib/mongo/auth/user.rb', line 35 def auth_mech_properties @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.
29 30 31 |
# archivo 'lib/mongo/auth/user.rb', line 29 def auth_source @auth_source end |
#base de datos ⇒ String (solo lectura)
Retorna la base de datos en la que se crea el usuario.
32 33 34 |
# archivo 'lib/mongo/auth/user.rb', line 32 def database @database end |
#mecanismo ⇒ Símbolo (solo lectura)
Devuelve el mecanismo de autorización.
38 39 40 |
# archivo 'lib/mongo/auth/user.rb', line 38 def mecanismo @mechanism end |
#nombre ⇒ string (solo lectura)
Devuelve el nombre de usuario.
41 42 43 |
# archivo 'lib/mongo/auth/user.rb', line 41 def Nombre @name end |
#contraseña ⇒ string (solo lectura)
Devuelve la contraseña en texto abierto.
44 45 46 |
# archivo 'lib/mongo/auth/user.rb', line 44 def Contraseña @password end |
#roles ⇒ Array<String> (solo lectura)
Devuelve los roles Los roles del usuario.
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
203 204 205 206 207 208 209 210 211 212 |
# archivo 'lib/mongo/auth/user.rb', line 203 def sí mismo.default_auth_source() caso [auth_mech] 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
Determina si este usuario es igual a otro.
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.
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_name ⇒ String
Obtén el nombre codificado en UTF-8 con caracteres especiales escapados para usar con la autorización SCRAM.
97 98 99 |
# archivo 'lib/mongo/auth/user.rb', line 97 def nombre_codificado Nombre.encode(BSON::UTF8).gsub('=', '=3D').gsub(',', '=2C') end |
#hash ⇒ String
Obtener la clave hash del usuario.
109 110 111 |
# archivo 'lib/mongo/auth/user.rb', line 109 def hash [ Nombre, database, Contraseña ].hash end |
#hashed_password ⇒ String
Obtén la contraseña encriptada del usuario para SCRAM-SHA-1.
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 |
#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.
Loggable requiere un atributo de opciones. No tenemos ninguna opción, por eso lo proporcionamos como base.
53 54 55 |
# archivo 'lib/mongo/auth/user.rb', line 53 def {} end |
#sasl_prepped_password ⇒ 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.
Obtén la contraseña stringprepped del usuario para SCRAM-SHA-256.
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 |
#spec ⇒ Hash
Obtener la especificación para el usuario, utilizada en la creación.
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 |