Classificação: Mongo::Auth::User
- Herda:
-
Objeto
- Objeto
- Mongo::Auth::User
- Inclui:
- Logável
- Definido em:
- lib/mongo/auth/user.rb,
lib/mongo/auth/user/view.rb
Visão geral
Representa um usuário no MongoDB.
Definido sob namespace
Classes: Vista
Resumo constante
Constantes incluídas do Loggable
Recolhimento do Resumo do atributo de instância
-
#auth_mech_properties ➤ Hash
Somente leitura
As propriedades do mecanismo de autenticação.
-
#auth_source ➤ string
Somente leitura
A origem de autorização, um banco de dados ou nome externo.
-
#database ⇒ String
Somente leitura
O banco de dados de dados no qual o usuário é criado.
-
#mecanismo ➤ Símbolo
Somente leitura
O mecanismo de autorização.
-
#name ➤ string
Somente leitura
O nome de usuário.
-
#senha ➤ string
Somente leitura
A senha em texto não criptografado.
-
#roles ➤ Array<String>
Somente leitura
Roles As funções do usuário.
Recolhimento do Resumo do método de classe
-
.default_auth_source(opções) ➤ Objeto
privado
Gere a fonte de autenticação padrão com base no URI e nas opções.
Recolhimento do Resumo do método de instância
-
#==(outro) ➤ verdadeiro, falso
Determine se esse usuário é igual a outro.
-
#auth_key(nonce) ➤ string
Obtenha uma chave de autenticação para o usuário com base em um nonce do servidor.
-
#coded_name ➤ string
Obtenha o nome codificado UTF-8 com caracteres especiais de escape para uso com autorização SCRAM.
-
#hash ➤ string
Obtenha a chave de hash para o usuário.
-
#hashed_password ➤ string
Obtenha a senha hashed do usuário para SCRAM-SHA-1.
-
#inicializar(opções) ➤ Usuário
construtor
Crie o novo usuário.
-
#opções ➤ Objeto
privado
Loggable requer um atributo de opções.
-
#sasl_prepped_password ➤ Objeto
privado
Obtenha a senha do usuário preparada para SCRAM-SHA-256.
-
#spec ➤ Hash
Obtenha a especificação do usuário, usada na criação.
Métodos incluídos no Loggable
#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger
Detalhes do construtor
#inicializar(opções) ➤ Usuário
Crie o novo usuário.
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 |
# Arquivo 'lib/mongo/auth/user.rb', linha 158 def inicializar() @database = [:database] || Database::ADMIN @auth_source = [:auth_source] || auto.classe.default_auth_source() @name = [: user] @senha = [:password] || [:pwd] @mecanismo = [:auth_mech] se @mecanismo # Como o driver deve selecionar uma classe de autenticação para # o mecanismo especificado, mecanismos que o motorista não # sabe e não pode traduzir para uma classe de autenticação, # precisa ser rejeitado. a menos que @mecanismo.is_a?(Símbolo) # Embora tenhamos documentado a opção auth_mech como um símbolo, nós # não aplicou isso; avisar, rejeitar no modo lint se Lint.habilitado? aumentar Erro::LintError, "Mecanismo de autenticação #{@mecanismo.inspecionar} deve ser especificado como um símbolo" end log_service("Mecanismo de autenticação #{@mecanismo.inspecionar} deve ser especificado como um símbolo") @mecanismo = @mecanismo.to_sym end aumentar InvalidMechanism.Novo([:auth_mech]) a menos que auth::Fontes.chave?(@mecanismo) end @auth_mech_properties = [:auth_mech_properties] || {} @roles = [:roles] || [] end |
Detalhes do atributo da instância
#auth_mech_properties ➤ Hash (somente leitura)
Retorna as propriedades do mecanismo de autenticação .
35 36 37 |
# Arquivo 'lib/mongo/auth/user.rb', linha 35 def auth_mech_properties @auth_mech_properties end |
#auth_source ➤ string (somente leitura)
Retorna a fonte de autorização, um banco de dados ou um nome externo.
29 30 31 |
# Arquivo 'lib/mongo/auth/user.rb', linha 29 def auth_source @auth_source end |
#banco de dados de dados ➤ string (somente leitura)
Retorna o banco de dados no qual o usuário é criado.
32 33 34 |
# Arquivo 'lib/mongo/auth/user.rb', linha 32 def database @database end |
#mecanismo ➤ símbolo (somente leitura)
Retorna o mecanismo de autorização .
38 39 40 |
# Arquivo 'lib/mongo/auth/user.rb', linha 38 def Mecanismo @mecanismo end |
#name ➤ string (somente leitura)
Retorna o nome de usuário.
41 42 43 |
# Arquivo 'lib/mongo/auth/user.rb', linha 41 def name @name end |
#senha ➤ string (somente leitura)
Retorna a senha em texto não criptografado.
44 45 46 |
# Arquivo 'lib/mongo/auth/user.rb', linha 44 def Senha @senha end |
#roles ➤ Array<String> (somente leitura)
Retorna roles As funções do usuário.
47 48 49 |
# Arquivo 'lib/mongo/auth/user.rb', linha 47 def roles @roles end |
Detalhes do método de classe
.default_auth_source(opções) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Gerar fonte de autenticação padrão com base no URI e nas opções
203 204 205 206 207 208 209 210 211 212 |
# Arquivo 'lib/mongo/auth/user.rb', linha 203 def auto.default_auth_source() caso [:auth_mech] quando :aws, :gssapi, :mongodb_x509 '$external' quando :plain [:database] || '$external' mais [:database] || Database::ADMIN end end |
Detalhes do método de instância
#==(outro) ➤ true, false
Determine se esse usuário é igual a outro.
67 68 69 70 71 |
# Arquivo 'lib/mongo/auth/user.rb', linha 67 def ==(Outro) Método false a menos que Outro.is_a?(Usuário) name == Outro.name && database == Outro.database && Senha == Outro.Senha end |
#auth_key(nonce) ➤ string
Obtenha uma chave de autenticação para o usuário com base em um nonce do servidor.
84 85 86 |
# Arquivo 'lib/mongo/auth/user.rb', linha 84 def auth_key(nonce) Digest::md5.hexdigest("#{nonce}#{name}#{hashed_password}") end |
#coded_name ➤ string
Obtenha o nome codificado UTF-8 com caracteres especiais de escape para uso com autorização SCRAM.
97 98 99 |
# Arquivo 'lib/mongo/auth/user.rb', linha 97 def coded_name name.encode(BSON::UTF8).gsub('=', '=3D').gsub(',', '=2C') end |
#hash ➤ string
Obtenha a chave de hash para o usuário.
109 110 111 |
# Arquivo 'lib/mongo/auth/user.rb', linha 109 def hash [ name, database, Senha ].hash end |
#hashed_password ➤ string
Obtenha a senha hashed do usuário para SCRAM-SHA-1.
121 122 123 124 125 |
# Arquivo 'lib/mongo/auth/user.rb', linha 121 def hashed_password aumentar Erro::missingPassword a menos que Senha @hashed_password ||= Digest::md5.hexdigest("#{name}:mongo:#{password}").encode(BSON::UTF8) end |
#opções ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Loggable requer um atributo de opções. Não temos nenhuma opção, portanto, forneça isso como um stub.
53 54 55 |
# Arquivo 'lib/mongo/auth/user.rb', linha 53 def {} end |
#sasl_prepped_password ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha a senha do usuário preparada para SCRAM-SHA-256.
130 131 132 133 134 135 136 137 |
# Arquivo 'lib/mongo/auth/user.rb', linha 130 def sasl_prepped_password aumentar Erro::missingPassword a menos que Senha @sasl_prepped_password ||= StringPrep.preparar(Senha, StringPrep::Perfis::sasl::mapeamentos, StringPrep::Perfis::sasl::PROIBIDO, normalizar: true, bidi: true).encode(BSON::UTF8) end |
#spec ➤ Hash
Obtenha a especificação do usuário, usada na criação.
194 195 196 197 198 |
# Arquivo 'lib/mongo/auth/user.rb', linha 194 def especificações { funções: roles }.toque fazer |especificações| especificações[:pwd] = Senha se Senha end end |