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

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
Logável
Definido em:
build/ruby-driver-v2.19/lib/mongo/auth/user.rb,
build/ruby-driver-v2.19/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 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



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
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 163

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"
      mais
        log_service("Mecanismo de autenticação #{@mecanismo.inspecionar} deve ser especificado como um símbolo")
        @mecanismo = @mecanismo.to_sym
      end
    end
    a menos que auth::Fontes.chave?(@mecanismo)
      aumentar InvalidMechanism.Novo(opções[:auth_mech])
    end
  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



37
38
39
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 37

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



31
32
33
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 31

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



34
35
36
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 34

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



40
41
42
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 40

def Mecanismo
  @mecanismo
end

#namestring (somente leitura)

Retorna o nome de usuário.

Retorna:

  • (string)

    O nome de usuário.

Desde:

  • 2.0.0



43
44
45
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 43

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



46
47
48
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 46

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



49
50
51
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 49

def roles
  @roles
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



69
70
71
72
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 69

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



85
86
87
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 85

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



98
99
100
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 98

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



110
111
112
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 110

def hash
  [ name, database, Senha ].hash
end

#hashed_password ➤ string

Obtenha a senha com hash do usuário para SCRAM-SHA-1.

Exemplos:

Obtenha a senha hashed do usuário.

user.hashed_password

Retorna:

  • (string)

    A senha com hash.

Desde:

  • 2.0.0



122
123
124
125
126
127
128
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 122

def hashed_password
  a menos que Senha
    aumentar Erro::missingPassword
  end

  @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



55
56
57
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 55

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 para SCRAM-SHA-256.

Desde:

  • 2.0.0



133
134
135
136
137
138
139
140
141
142
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 133

def sasl_prepped_password
  a menos que Senha
    aumentar Erro::missingPassword
  end

  @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



200
201
202
203
204
205
206
# File 'build/ruby-driver-v2.19/lib/mongo/auth/user.rb', linha 200

def especificações
  {funções: roles}.toque fazer |especificações|
    se Senha
      especificações[:pwd] = Senha
    end
  end
end