클래스: Mongo::Auth::ScramConversationBase 비공개
- 상속:
-
SaslConversationBase
- 객체
- ConversationBase
- SaslConversationBase
- Mongo::Auth::ScramConversationBase
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/auth/scram_conversation_base.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
클라이언트 와 서버 간의 인증 대화와 관련된 일반적인 동작을 정의합니다.
상수 요약 접기
- MIN_ITER_COUNT =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
SCRAM-SHA-1 및 SCRAM-SHA-256 의 최소 반복 횟수입니다.
4096
SaslConversationBase에서 상속된 상수
Mongo::Auth::SaslConversationBase::CLIENT_CONTINUE_MESSAGE, Mongo::Auth::SaslConversationBase::CLIENT_FIRST_MESSAGE
인스턴스 속성 요약 접기
-
#client_nonce ⇒ string
읽기 전용
비공개
Client_nonce 클라이언트 논스입니다.
-
#ID ⇒ 정수
읽기 전용
비공개
대화의 ID를 가져옵니다.
ConversationBase에서 상속된 속성
인스턴스 메서드 요약 접기
-
#continue(reply_document, connection) ⇒ Protocol::Message
비공개
SCRAM 대화를 계속합니다.
-
#finalize(connection) ⇒ Protocol::Message
비공개
SCRAM 대화를 마무리합니다.
-
#initialize(user, connection, client_nonce: nil) ⇒ ScramConversationBase
생성자
비공개
새 대화를 만듭니다.
-
#process_continue_response(reply_document) ⇒ 객체
비공개
서버 의 두 번째 응답을 처리합니다.
-
#server_verified? ⇒ true | fase
비공개
클라이언트가 서버에서 ServerSignature를 확인했는지 여부입니다.
-
#speculative_auth_document ⇒ 해시 | nil
비공개
핸드셰이크에서 speculativeAuthenticate 키의 값으로 서버 에 제공할 해시를 반환합니다.
SaslConversationBase에서 상속된 메서드
ConversationBase에서 상속된 메서드
#build_message, #validate_external_auth_source
생성자 세부 정보
#initialize(user, connection, client_nonce: nil) ⇒ ScramConversationBase
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
새 대화를 만듭니다.
38 39 40 41 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/scram_conversation_base.rb', 줄 38 def 초기화(사용자, 연결, client_nonce: nil) super @client_nonce = client_nonce || SecureRandom.기본64 end |
인스턴스 속성 세부 정보
#client_nonce ⇒ string (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
client_nonce를 반환합니다.
44 45 46 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/scram_conversation_base.rb', 줄 44 def client_nonce @client_nonce end |
#ID ⇒ 정수 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
대화의 ID를 가져옵니다.
52 53 54 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/scram_conversation_base.rb', 줄 52 def id @id end |
인스턴스 메서드 세부 정보
#continue(reply_document, connection) ⇒ Protocol::Message
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
SCRAM 대화를 계속합니다. 이전 서버 통신에서 회신을 설정한 후 클라이언트 최종 메시지를 서버로 보냅니다.
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/scram_conversation_base.rb', 줄 73 def 계속(Reply_document, 연결) @id = Reply_document['conversationId'] payload_data = Reply_document['payload'].데이터 parsed_data = parse_payload(payload_data) @server_nonce = parsed_data.가져오기('r') @salt = Base64.strict_decode64(parsed_data.가져오기('s')) @iterations = parsed_data.가져오기('나는').to_i.탭 do |i| 만약 i < MIN_ITER_COUNT 올리다 오류::불충분한 반복 횟수.신규( 오류::불충분한 반복 횟수.(MIN_ITER_COUNT, i)) end end @auth_message = "#{},#{payload_data},#{without_Proof}" validate_server_nonce! 선택기 = CLIENT_CONTINUE_MESSAGE.merge( 페이로드: , 대화 ID: id, ) (연결, 사용자.auth_source, 선택기) end |
#finalize(connection) ⇒ Protocol::Message
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
SCRAM 대화를 마무리합니다. 이는 제공된 회신에서 대화가 완료되었음을 나타낼 때까지 반복됩니다.
111 112 113 114 115 116 117 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/scram_conversation_base.rb', 줄 111 def 마무리(연결) 선택기 = CLIENT_CONTINUE_MESSAGE.merge( 페이로드: , 대화 ID: id, ) (연결, 사용자.auth_source, 선택기) end |
#process_continue_response(reply_document) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 의 두 번째 응답을 처리합니다.
100 101 102 103 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/scram_conversation_base.rb', 줄 100 def process_continue_response(Reply_document) payload_data = parse_payload(Reply_document['payload'].데이터) check_server_signature(payload_data) end |
#server_verified? ⇒ true | fase
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
클라이언트가 서버에서 ServerSignature를 확인했는지 여부입니다.
59 60 61 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/scram_conversation_base.rb', 줄 59 def server_verified? !!@server_verified end |
#speculative_auth_document ⇒ 해시 | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
핸드셰이크에서 speculativeAuthenticate 키의 값으로 서버 에 제공할 해시를 반환합니다.
인증 메커니즘이 추측 인증 을 지원 하지 않는 경우 이 메서드는 nil을 반환합니다.
126 127 128 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/auth/scram_conversation_base.rb', 줄 126 def speculative_auth_document client_first_document.merge(db: 사용자.auth_source) end |