클래스: Mongo::Auth::Gssapi::Conversation Private

상속:
SaslConversationBase 모두 표시
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb

개요

이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

클라이언트 와 서버 간의 단일 Kerberos 대화와 관련된 동작을 정의합니다.

이후:

  • 2.0.0

상수 요약 접기

START_MESSAGE =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

기본 클라이언트 첫 번째 메시지입니다.

이후:

  • 2.0.0

{ saslStart: 1, autoAuthorize: 1 }.동결
CONTINUE_MESSAGE =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

기본 클라이언트 계속 메시지입니다.

이후:

  • 2.0.0

{ saslContinue: 1 }.동결

SaslConversationBase에서 상속된 상수

SaslConversationBase::CLIENT_CONTINUE_MESSAGE, SaslConversationBase::CLIENT_FIRST_MESSAGE

인스턴스 속성 요약 접기

ConversationBase에서 상속된 속성

#connection, #user

인스턴스 메서드 요약 접기

SaslConversationBase에서 상속된 메서드

#start

ConversationBase에서 상속된 메서드

#build_message, #speculative_auth_document, #validate_external_auth_source

생성자 세부 정보

#initialize(user, connection, **opts) ⇒ Conversation

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

새 대화를 만듭니다.

예시:

새 대화를 만듭니다.

Conversation.new(user, 'test.example.com')

매개변수:

  • 사용자 (Auth::User)

    대화할 사용자입니다.

  • 연결 (Mongo::Connection)

    인증할 연결입니다.

이후:

  • 2.0.0



44
45
46
47
48
49
50
51
52
53
54
55
56
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', 줄 44

def 초기화(사용자, 연결, **opts)
  super
  호스트 = 연결.주소.호스트
  하지 않는 한 정의됨?(mongo::GssapiNative)
    require 'mongo_kerberos'
  end
  @authenticator = mongo::GssapiNative::인증자.신규(
    사용자.이름,
    호스트,
    사용자.auth_mech_properties[:service_name] || 'mongodb',
    사용자.auth_mech_properties[:canonicalize_host_name] || 거짓,
  )
end

인스턴스 속성 세부 정보

#인증 자 ⇒ 인증 자(읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

인증자를 반환합니다. 네이티브 SASL 인증자입니다.

반환합니다:

  • (인증자)

    인증자 네이티브 SASL 인증자입니다.

이후:

  • 2.0.0



59
60
61
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', 줄 59

def 인증자
  @authenticator
end

#ID정수 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

대화의 ID를 가져옵니다.

반환합니다:

  • (정수)

    대화 ID입니다.

이후:

  • 2.0.0



64
65
66
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', 줄 64

def id
  @id
end

인스턴스 메서드 세부 정보

#client_first_document객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이후:

  • 2.0.0



66
67
68
69
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', 줄 66

def client_first_document
  start_token = 인증자.initialize_challenge
  START_MESSAGE.merge(메커니즘: 그사피::메커니즘, 페이로드: start_token)
end

#continue(reply_document, connection) ⇒ Protocol::Message

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

대화를 계속합니다.

매개변수:

  • Reply_document (BSON::Document)

    이전 메시지의 회신 문서입니다.

반환합니다:

이후:

  • 2.0.0



77
78
79
80
81
82
83
84
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', 줄 77

def 계속(Reply_document, 연결)
  @id = Reply_document['conversationId']
  Payload = Reply_document['payload']

  continue_token = 인증자.verify_challenge(Payload)
  선택기 = CONTINUE_MESSAGE.merge(페이로드: continue_token, 대화 ID: id)
  build_message(연결, '$external', 선택기)
end

#finalize(connection) ⇒ Protocol::Message

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

실행할 다음 쿼리 를 반환합니다.

반환합니다:

이후:

  • 2.0.0



93
94
95
96
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', 줄 93

def 마무리(연결)
  선택기 = CONTINUE_MESSAGE.merge(페이로드: @continue_token, 대화 ID: id)
  build_message(연결, '$external', 선택기)
end

#process_continue_response(reply_document) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이후:

  • 2.0.0



86
87
88
89
90
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/gssapi/conversation.rb', 줄 86

def process_continue_response(Reply_document)
  Payload = Reply_document['payload']

  @continue_token = 인증자.verify_challenge(Payload)
end