BasicAuthenticator
BasicAuthenticator (HTTP Basic 인증 구현)
HTTP Basic 인증의 구현을 제공하는 추상 클래스입니다. Authenticator를 상속하며, 들어오는 각 요청을 검증하기 위해 호출되는 checkCredentials(String, String)의 구현을 제공하도록 확장되어야 해요.
본문
HTTP Basic 인증은 요청 헤더에 사용자 이름과 비밀번호를 담아 보내는 가장 단순한 인증 방식입니다. 이 클래스는 그 인증을 구현하며, 인증이 실제로 맞는지 판단하는 checkCredentials를 하위 클래스가 구현하게 합니다. realm(보호 영역)이라는 필드를 가지며 HTTP Basic 인증의 realm을 나타냅니다.
생성자
BasicAuthenticator(String realm)— 주어진 HTTP realm에 대한 인증기를 만듭니다. Basic 인증 자격 증명(사용자 이름과 비밀번호)은 플랫폼의 기본 문자셋으로 디코딩됩니다.realm이null이면NullPointerException, 빈 문자열이거나 RFC 7230 3.2절대로 올바르게 인용되지 않았으면IllegalArgumentException이 발생해요.
realm 값은 큰따옴표로 감싼 문자열에 들어가므로, 이상한 글자나 따옴표를 포함하지 않도록 주의해야 합니다.
BasicAuthenticator(String realm, Charset charset)— 주어진 realm과, 들어오는 자격 증명을 디코딩할Charset을 사용해 인증기를 만듭니다. UTF-8이 권장되는데, 그 사용이 클라이언트에 전달되므로 클라이언트도 그 문자셋을 쓸 가능성이 높기 때문이에요.realm이나charset이null이면NullPointerException, realm이 잘못 인용되었으면IllegalArgumentException이 발생합니다.
메서드
-
authenticate(HttpExchange t)— 들어오는 각 요청을 인증하기 위해 호출됩니다. 자격 증명을 디코드해checkCredentials로 검증하고, 그 결과에 따라Result를 반환해요. -
checkCredentials(String username, String password)— 들어오는 각 요청마다 이 인증기의 realm 맥락에서 주어진 이름과 비밀번호를 검증하기 위해 호출되는 추상 메서드입니다. -
getRealm()— 이 인증기가 생성될 때 사용한 realm을 반환합니다.