BasicAuthenticator

BasicAuthenticator (HTTP Basic 인증 구현)

HTTP Basic 인증의 구현을 제공하는 추상 클래스입니다. Authenticator를 상속하며, 들어오는 각 요청을 검증하기 위해 호출되는 checkCredentials(String, String)의 구현을 제공하도록 확장되어야 해요.

출처: Java API Reference

본문

HTTP Basic 인증은 요청 헤더에 사용자 이름과 비밀번호를 담아 보내는 가장 단순한 인증 방식입니다. 이 클래스는 그 인증을 구현하며, 인증이 실제로 맞는지 판단하는 checkCredentials를 하위 클래스가 구현하게 합니다. realm(보호 영역)이라는 필드를 가지며 HTTP Basic 인증의 realm을 나타냅니다.

생성자

  • BasicAuthenticator(String realm) — 주어진 HTTP realm에 대한 인증기를 만듭니다. Basic 인증 자격 증명(사용자 이름과 비밀번호)은 플랫폼의 기본 문자셋으로 디코딩됩니다. realmnull이면 NullPointerException, 빈 문자열이거나 RFC 7230 3.2절대로 올바르게 인용되지 않았으면 IllegalArgumentException이 발생해요.

realm 값은 큰따옴표로 감싼 문자열에 들어가므로, 이상한 글자나 따옴표를 포함하지 않도록 주의해야 합니다.

  • BasicAuthenticator(String realm, Charset charset) — 주어진 realm과, 들어오는 자격 증명을 디코딩할 Charset을 사용해 인증기를 만듭니다. UTF-8이 권장되는데, 그 사용이 클라이언트에 전달되므로 클라이언트도 그 문자셋을 쓸 가능성이 높기 때문이에요. realm이나 charsetnull이면 NullPointerException, realm이 잘못 인용되었으면 IllegalArgumentException이 발생합니다.

메서드

  • authenticate(HttpExchange t) — 들어오는 각 요청을 인증하기 위해 호출됩니다. 자격 증명을 디코드해 checkCredentials로 검증하고, 그 결과에 따라 Result를 반환해요.

  • checkCredentials(String username, String password) — 들어오는 각 요청마다 이 인증기의 realm 맥락에서 주어진 이름과 비밀번호를 검증하기 위해 호출되는 추상 메서드입니다.

  • getRealm() — 이 인증기가 생성될 때 사용한 realm을 반환합니다.

더 알아보기

Java 공식 API