Classe: Mongo::Socket::SSL Private

Herda:
Mongo::Socket mostrar tudo
Inclui:
Loggável, OpenSSL
Definido em:
lib/mongo/socket/ssl.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Encapsulador para soquetes TLS.

Desde:

  • 2.0.0

Resumo constante

Constantes incluídas do Loggable

Loggable::Prefix

Constantes herdadas de Mongo::Socket

SSL_ERROR, TIMEOUT_ERROR, TIMEOUT_PACK, WRITE_CHUNK_SIZE

Recolhimento do Resumo do atributo de instância

Atributos herdados de Mongo::Socket

#family, #options, #socket, #timeout

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

Métodos herdados do Mongo::Socket

#alive?, #close, #connectable?, #connection_address, #connection_generation, #eof?, #gets, #monitor?, pipe, #read, #summary, #write

Detalhes do construtor

#inicializar(host, porta, host_name, tempo limite, família, opções = {}) ➤ SSL

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.

Inicia um novo soquete TLS.

Exemplos:

Crie o soquete TLS.

SSL.new('::1', 27017, 30)

Parâmetros:

  • Anfitrião (string)

    O nome do host ou endereço IP.

  • Porta (Inteiro)

    O número da porta.

  • timeout (Flutuante)

    O valor de tempo limite do soquete.

  • família (Inteiro)

    A família do soquete.

  • opções (Hash) (padrão para: {})

    As opções.

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

  • :connect_timeout (Flutuante)

    Tempo limite de conexão.

  • :connection_address (Endereço)

    Endereço da conexão que criou este soquete.

  • :connection_generação (Inteiro)

    Geração da conexão (para conexões não monitoradas) que criou esse soquete.

  • :monitor (verdadeiro | falso)

    Se esse soquete foi criado por uma conexão de monitoramento.

  • :ssl_ca_cert (string)

    O arquivo contendo certificados de autoridade de certificação concatenados usados para validar certificados passados da outra extremidade da conexão. Certificados intermediários NÃO devem ser especificados em arquivos referenciados por esta opção. Um dos seguintes :ssl_ca_cert, :ssl_ca_cert_string ou :ssl_ca_cert_object (em ordem de prioridade) é necessário ao utilizar :ssl_verify.

  • :ssl_ca_cert_object (Array <OpenSSL::X509::Certificate>)

    Uma array de objetos OpenSSL::X509::Certificate que representam os certificados de autoridade de certificação usados para validar os certificados passados da outra extremidade da conexão. Certificados intermediários NÃO devem ser especificados em arquivos referenciados por esta opção. Um dos seguintes :ssl_ca_cert, :ssl_ca_cert_string ou :ssl_ca_cert_object (em ordem de prioridade) é necessário ao utilizar :ssl_verify.

  • :ssl_ca_cert_string (string)

    Uma string contendo certificado de autoridade de certificação usada para validar certificados passados da outra extremidade da conexão. Esta opção permite passar apenas um certificado CA para o driver. Certificados intermediários NÃO devem ser especificados em arquivos referenciados por esta opção. Um dos seguintes :ssl_ca_cert, :ssl_ca_cert_string ou :ssl_ca_cert_object (em ordem de prioridade) é necessário ao utilizar :ssl_verify.

  • :ssl_cert (string)

    O arquivo de certificado usado para identificar a conexão com o MongoDB. Uma cadeia de certificados pode ser passada especificando o certificado do cliente primeiro, seguido por quaisquer certificados intermediários até o certificado da CA. O arquivo também pode conter a chave privada do certificado, que será ignorada. Esta opção, se presente, tem precedência sobre os valores de :ssl_cert_string e :ssl_cert_object

  • :ssl_cert_object (OpenSSL::X509::Certificate)

    O OpenSSL::X509::Certificate usado para identificar a conexão com o MongoDB. Somente um certificado pode ser passado por esta opção.

  • :ssl_cert_string (string)

    Uma string contendo o certificado codificado por PEM usado para identificar a conexão com o MongoDB. Uma cadeia de certificados pode ser passada especificando o certificado do cliente primeiro, seguido por quaisquer certificados intermediários até o certificado da CA. A string também pode conter a chave privada do certificado, que será ignorada. Esta opção, se presente, tem precedência sobre o valor de :ssl_cert_object

  • :ssl_key (string)

    O arquivo de chave privada usado para identificar a conexão com o MongoDB. Observe que, mesmo que a chave esteja armazenada no mesmo arquivo que o certificado, ambos precisam ser especificados explicitamente. Esta opção, se presente, tem precedência sobre os valores de :ssl_key_string e :ssl_key_object

  • :ssl_key_object (OpenSSL::PKey)

    A chave privada usada para identificar a conexão com o MongoDB

  • :ssl_key_pass_ phrase (string)

    Uma senha para a chave privada.

  • :ssl_key_string (string)

    Uma string contendo a chave privada codificada PEM usada para identificar a conexão com o MongoDB. Este parâmetro, se presente, tem precedência sobre o valor da opção:ssl_key_object

  • :ssl_verify (verdadeiro, falso)

    Se deve ser executada a validação do certificado de par e a verificação do nome do host. Observe que a decisão de validar certificados será substituída se :ssl_verify_certificate estiver definido, e a decisão de validar nomes de host será substituída se :ssl_verify_hostname estiver definido.

  • :ssl_verify_certificate (verdadeiro, falso)

    Se a validação do certificado de par deve ser executada. Esta configuração substitui :ssl_verify no que diz respeito à execução ou não da validação do certificado.

  • :ssl_verify_hostname (verdadeiro, falso)

    Se deve ser executada a validação do nome do host do par. Esta configuração substitui :ssl_verify com relação à execução ou não da validação do nome do host.

Desde:

  • 2.0.0



104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# Arquivo 'lib/mongo/socket/ssl.rb', linha 104

def inicializar(Anfitrião, Porta, host_name, timeout, família, opções = {})
  super(timeout, opções)
  @host, @port, @host_name = Anfitrião, Porta, host_name
  @context = create_context(opções)
  @family = família
  @tcp_socket = ::Soquete.Novo(família, SOCK_STREAM, 0)
  começar
    @tcp_socket.setsockopt(IPPROTO_TCP, TCP_NODELEY, 1)
    set_socket_options(@tcp_socket)
    run_tls_context_hooks

    Conecte-se!
  salvar
    @tcp_socket.Fechar
    aumentar
  end
end

Detalhes do atributo da instância

#context ➤ SSLContext (somente leitura)

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.

Retorna o contexto O contexto do TLS.

Retorna:

  • (SSLContext)

    contexto O contexto do TLS.

Desde:

  • 2.0.0



123
124
125
# Arquivo 'lib/mongo/socket/ssl.rb', linha 123

def Contexto
  @context
end

#hoststring (somente leitura)

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.

Retorna host O host ao qual se conectar.

Retorna:

  • (string)

    host O host ao qual se conectar.

Desde:

  • 2.0.0



126
127
128
# Arquivo 'lib/mongo/socket/ssl.rb', linha 126

def Anfitrião
  @host
end

#host_namestring (somente leitura)

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.

Retorna host_name O nome do host original.

Retorna:

  • (string)

    host_name O nome do host original.

Desde:

  • 2.0.0



129
130
131
# Arquivo 'lib/mongo/socket/ssl.rb', linha 129

def host_name
  @host_name
end

#portainteiro (somente leitura)

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.

Retorna porta A porta à qual se conectar.

Retorna:

  • (Inteiro)

    porta A porta à qual se conectar.

Desde:

  • 2.0.0



132
133
134
# Arquivo 'lib/mongo/socket/ssl.rb', linha 132

def Porta
  @port
end

Detalhes do método de instância

#readbyte ➤ 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.

Leia um único byte do soquete.

Exemplos:

Leia um único byte.

socket.readbyte

Retorna:

  • (Objeto)

    O byte de leitura.

Desde:

  • 2.0.0



188
189
190
191
192
193
# Arquivo 'lib/mongo/socket/ssl.rb', linha 188

def readbyte
  map_Exceptions fazer
    byte = soquete.ler(1).bytes.to_a[0]
    byte.nada? ? aumentar(Erro EOFE) : byte
  end
end