Classificação: Mongo::Auth::User

Herda:
Objeto
  • Objeto
mostrar tudo
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.

Desde:

  • 2.0.0

Definido sob namespace

Classes: Vista

Resumo constante

Constantes incluídas do Loggable

Loggable::Prefix

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

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.

Exemplos:

Crie um novo usuário.

Mongo::Auth::User.new(options)

Parâmetros:

  • opções (Hash)

    As opções das quais criar o usuário.

Hash de opções (opções):

  • :auth_source (string)

    O banco de banco de dados de autorização ou fonte externa.

  • :database (string)

    O banco de dados de dados para o qual o usuário está autorizado.

  • : user (string)

    O nome de usuário.

  • :password (string)

    A senha do usuário.

  • :pwd (string)

    Opção herdada para a senha do usuário. Se :password e :pwd forem especificados, :password terá precedência.

  • :auth_mech (Símbolo)

    O mecanismo de autorização.

  • roles (Array<String>, Array<Hash>)

    As funções do usuário.

Desde:

  • 2.0.0



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(opções)
  @database = opções[:database] || Database::ADMIN
  @auth_source = opções[:auth_source] || auto.classe.default_auth_source(opções)
  @name = opções[: user]
  @senha = opções[:password] || opções[:pwd]
  @mecanismo = opções[: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(opções[:auth_mech]) a menos que auth::Fontes.chave?(@mecanismo)
  end
  @auth_mech_properties = opções[:auth_mech_properties] || {}
  @roles = opções[:roles] || []
end

Detalhes do atributo da instância

#auth_mech_properties ➤ Hash (somente leitura)

Retorna as propriedades do mecanismo de autenticação .

Retorna:

  • (Hash)

    As propriedades do mecanismo de autenticação.

Desde:

  • 2.0.0



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.

Retorna:

  • (string)

    A origem de autorização, um banco de dados ou nome externo.

Desde:

  • 2.0.0



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.

Retorna:

  • (string)

    O banco de dados de dados no qual o usuário é criado.

Desde:

  • 2.0.0



32
33
34
# Arquivo 'lib/mongo/auth/user.rb', linha 32

def database
  @database
end

#mecanismosímbolo (somente leitura)

Retorna o mecanismo de autorização .

Retorna:

  • (Símbolo)

    O mecanismo de autorização.

Desde:

  • 2.0.0



38
39
40
# Arquivo 'lib/mongo/auth/user.rb', linha 38

def Mecanismo
  @mecanismo
end

#namestring (somente leitura)

Retorna o nome de usuário.

Retorna:

  • (string)

    O nome de usuário.

Desde:

  • 2.0.0



41
42
43
# Arquivo 'lib/mongo/auth/user.rb', linha 41

def name
  @name
end

#senhastring (somente leitura)

Retorna a senha em texto não criptografado.

Retorna:

  • (string)

    A senha em texto não criptografado.

Desde:

  • 2.0.0



44
45
46
# Arquivo 'lib/mongo/auth/user.rb', linha 44

def Senha
  @senha
end

#rolesArray<String> (somente leitura)

Retorna roles As funções do usuário.

Retorna:

  • (Array<String>)

    roles As funções do usuário.

Desde:

  • 2.0.0



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

Desde:

  • 2.0.0



203
204
205
206
207
208
209
210
211
212
# Arquivo 'lib/mongo/auth/user.rb', linha 203

def auto.default_auth_source(opções)
  caso opções[:auth_mech]
  quando :aws, :gssapi, :mongodb_x509
    '$external'
  quando :plain
    opções[:database] || '$external'
  mais
    opções[:database] || Database::ADMIN
  end
end

Detalhes do método de instância

#==(outro) ➤ true, false

Determine se esse usuário é igual a outro.

Exemplos:

Verifique a igualdade do usuário.

user == other

Parâmetros:

  • Outro (Objeto)

    O objeto com o qual comparar.

Retorna:

  • (verdadeiro, falso)

    Se os objetos forem iguais.

Desde:

  • 2.0.0



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.

Exemplos:

Obtenha a chave de autenticação.

user.auth_key(nonce)

Parâmetros:

  • nonce (string)

    A resposta do servidor.

Retorna:

  • (string)

    A chave de autenticação.

Desde:

  • 2.0.0



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.

Exemplos:

Obtenha o nome codificado.

user.encoded_name

Retorna:

  • (string)

    O nome de usuário codificado.

Desde:

  • 2.0.0



97
98
99
# Arquivo 'lib/mongo/auth/user.rb', linha 97

def coded_name
  name.encode(BSON::UTF8).gsub('=', '=3D').gsub(',', '=2C')
end

#hashstring

Obtenha a chave de hash para o usuário.

Exemplos:

Obtenha a chave de hash.

user.hash

Retorna:

  • (string)

    A chave de hash do usuário.

Desde:

  • 2.0.0



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.

Exemplos:

Obtenha a senha hashed do usuário.

user.hashed_password

Retorna:

  • (string)

    A senha com hash.

Aumenta:

Desde:

  • 2.0.0



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çõesObjeto

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.

Desde:

  • 2.0.0



53
54
55
# Arquivo 'lib/mongo/auth/user.rb', linha 53

def opções
  {}
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.

Aumenta:

Desde:

  • 2.0.0



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

#specHash

Obtenha a especificação do usuário, usada na criação.

Exemplos:

Obtenha a especificação do usuário.

user.spec

Retorna:

  • (Hash)

    A especificação do usuário.

Desde:

  • 2.0.0



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