클래스: Mongo::Auth::User

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
로깅 가능
다음에 정의됨:
빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb,
빌드/ Ruby-driver-v2.19/lib/mongo/auth/user/view.rb

개요

MongoDB 의 사용자를 나타냅니다.

이후:

  • 2.0.0

네임스페이스 아래에 정의됨

클래스: 보기

상수 요약

Loggable에서 포함된 상수

Loggable::prefix

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

Loggable에 포함된 메서드

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

생성자 세부 정보

#initialize(options) ⇒ 사용자

새 사용자를 만듭니다.

예시:

새 사용자를 만듭니다.

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

매개변수:

  • 옵션 (해시)

    사용자를 생성할 수 있는 옵션입니다.

옵션 해시(options):

  • :auth_source (string)

    권한 부여 데이터베이스 또는 외부 소스입니다.

  • :database (string)

    사용자에게 권한이 부여된 데이터베이스 입니다.

  • : user (string)

    사용자 이름입니다.

  • :password (string)

    사용자의 비밀번호입니다.

  • :pwd (string)

    사용자 비밀번호에 대한 레거시 옵션입니다. :password와 :pwd를 모두 지정한 경우 :password가 우선합니다.

  • :auth_mech (기호)

    권한 부여 메커니즘.

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

    사용자 역할.

이후:

  • 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
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 163

def 초기화(옵션)
  @database = 옵션[:database] || Database::ADMIN
  @auth_source = 옵션[:auth_source] || self.클래스.default_auth_source(옵션)
  @name = 옵션[: user]
  @password = 옵션[:password] || 옵션[:pwd]
  @mechanism = 옵션[:auth_mech]
  만약 @mechanism
    # 운전자 가 다음에 대한 인증 클래스를 선택해야 하므로
    # 지정된 메커니즘, 운전자 가 수행하지 않는 메커니즘
    # 인증 클래스에 대해 알고 있으며 인증 클래스로 변환할 수 없습니다.
    # 거부해야 합니다.
    하지 않는 한 @mechanism.is_a?(기호)
      # auth_mech 옵션을 기호로 문서화했지만
      # 이를 시행하지 않았습니다. 린트 모드 에서 경고, 거부
      만약 Lint.활성화?
        올리다 오류::LintError, "인증 메커니즘 #{@mechanism.검사} 를 기호로 지정해야 합니다.
      other
        log_warn("인증 메커니즘 #{@mechanism.검사} 기호로 지정해야 합니다")
        @mechanism = @mechanism.to_sym
      end
    end
    하지 않는 한 인증::출처.키?(@mechanism)
      올리다 InvalidMechanism.신규(옵션[:auth_mech])
    end
  end
  @auth_mech_properties = 옵션[:auth_mech_properties] || {}
  @roles = 옵션[:roles] || []
end

인스턴스 속성 세부 정보

#auth_mech_properties해시 (읽기 전용)

반환값 인증 메커니즘 속성을 반환합니다.

반환합니다:

  • (해시)

    인증 메커니즘 속성입니다.

이후:

  • 2.0.0



37
38
39
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 37

def auth_mech_properties
  @auth_mech_properties
end

#auth_sourcestring (읽기 전용)

반환값 권한 부여 소스(데이터베이스 또는 외부 이름)를 반환합니다.

반환합니다:

  • (string)

    권한 부여 소스(데이터베이스 또는 외부 이름)입니다.

이후:

  • 2.0.0



31
32
33
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 31

def auth_source
  @auth_source
end

#데이터베이스string (읽기 전용)

사용자가 생성된 데이터베이스를 반환합니다.

반환합니다:

  • (string)

    사용자가 생성된 데이터베이스 입니다.

이후:

  • 2.0.0



34
35
36
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 34

def database
  @database
end

#메커니즘기호 (읽기 전용)

반환값 권한 부여 메커니즘.

반환합니다:

  • (기호)

    권한 부여 메커니즘.

이후:

  • 2.0.0



40
41
42
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 40

def 메커니즘
  @mechanism
end

#이름string (읽기 전용)

반환값 사용자 이름.

반환합니다:

  • (string)

    사용자 이름입니다.

이후:

  • 2.0.0



43
44
45
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 43

def 이름
  @name
end

#비밀번호string (읽기 전용)

일반 텍스트 비밀번호를 반환합니다.

반환합니다:

  • (string)

    일반 텍스트 비밀번호입니다.

이후:

  • 2.0.0



46
47
48
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 46

def 비밀번호
  @password
end

#rolesArray<String> (읽기 전용)

반환 역할 사용자 역할입니다.

반환합니다:

  • (Array<String>)

    역할 사용자 역할.

이후:

  • 2.0.0



49
50
51
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 49

def roles
  @roles
end

인스턴스 메서드 세부 정보

#==(기타) ⇒ true, false

이 사용자가 다른 사용자와 동일한지 확인합니다.

예시:

사용자 동등성을 확인합니다.

user == other

매개변수:

  • 기타 (객체)

    비교할 객체 입니다.

반환합니다:

  • (true, false)

    객체가 동일한 경우.

이후:

  • 2.0.0



69
70
71
72
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 69

def ==(기타)
  반환 거짓 하지 않는 한 기타.is_a?(사용자)
  이름 == 기타.이름 && database == 기타.database && 비밀번호 == 기타.비밀번호
end

#auth_key(nonce) ⇒ string

서버의 논스(nonce)를 기반으로 사용자의 인증 키를 가져옵니다.

예시:

인증 키를 가져옵니다.

user.auth_key(nonce)

매개변수:

  • 논스 (string)

    서버 의 응답입니다.

반환합니다:

  • (string)

    인증 키입니다.

이후:

  • 2.0.0



85
86
87
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 85

def auth_key(논스)
  다이제스트::MD5.hexdigest("#{nonce}#{name}#{hashed_password}")
end

#인코딩된_이름string

SCRAM 권한 부여 에 사용할 수 있도록 이스케이프된 특수 문자를 사용하여 UTF-8 로 인코딩된 이름을 가져옵니다.

예시:

인코딩된 이름을 가져옵니다.

user.encoded_name

반환합니다:

  • (string)

    인코딩된 사용자 이름입니다.

이후:

  • 2.0.0



98
99
100
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 98

def 인코딩된 이름
  이름.encode(BSON::UTF8).gsub('=','=3D').gsub(',','=2C')
end

#해시string

사용자의 해시 키를 가져옵니다.

예시:

해시 키를 가져옵니다.

user.hash

반환합니다:

  • (string)

    사용자 해시 키입니다.

이후:

  • 2.0.0



110
111
112
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 110

def 해시
  [ 이름, database, 비밀번호 ].해시
end

#hashed_passwordstring

SCRAM -SHA-1 에 대한 사용자의 해시 된 비밀번호를 가져옵니다.

예시:

사용자의 해시 된 비밀번호를 가져옵니다.

user.hashed_password

반환합니다:

  • (string)

    해시된 비밀번호입니다.

이후:

  • 2.0.0



122
123
124
125
126
127
128
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 122

def hashed_password
  하지 않는 한 비밀번호
    올리다 오류::MissingPassword
  end

  @hashed_password ||= 다이제스트::MD5.hexdigest("#{name}: Mongo:#{password}").encode(BSON::UTF8)
end

#options객체

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

로그 가능에는 옵션 속성이 필요합니다. 선택할 수 있는 방법이 없으므로 이를 스텁으로 제공합니다.

이후:

  • 2.0.0



55
56
57
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 55

def 옵션
  {}
end

#sasl_prepped_password객체

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

SCRAM-SHA-256 에 대한 사용자의 문자열 준비된 비밀번호를 가져옵니다.

이후:

  • 2.0.0



133
134
135
136
137
138
139
140
141
142
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 133

def sasl_prepped_password
  하지 않는 한 비밀번호
    올리다 오류::MissingPassword
  end

  @sasl_prepped_password ||= StringPrep.준비하다(비밀번호,
    StringPrep::프로필::sasl::지도 제작,
    StringPrep::프로필::sasl::금지됨,
    정규화: true, bidi: true).encode(BSON::UTF8)
end

#spec해시

생성에 사용된 사용자의 사양을 가져옵니다.

예시:

사용자의 사양을 가져옵니다.

user.spec

반환합니다:

  • (해시)

    사용자 사양.

이후:

  • 2.0.0



200
201
202
203
204
205
206
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/auth/user.rb', 줄 200

def 사양
  {역할: roles}. do |사양|
    만약 비밀번호
      사양[:pwd] = 비밀번호
    end
  end
end