HttpServerAuthenticator
HttpServerAuthenticator (HTTP 서버 인증 처리)
HTTP 인증 메커니즘의 구현을 나타내는 추상 클래스입니다. HTTP 서버(com.sun.net.httpserver)에서 들어오는 요청의 인증 정보를 검증하는 역할을 해요. 참고로 이름이 같은 java.net.Authenticator(네트워크 연결 인증)와는 다른 클래스입니다.
본문
Authenticator는 HTTP 인증 메커니즘의 구현을 나타내며, 하위 클래스들이 Digest나 Basic 같은 특정 메커니즘의 구현을 제공합니다. 인스턴스는 들어오는 모든 요청에서 제공된 인증 정보를 검증하기 위해 호출돼요. 이는 자격 증명이나 다른 인증 정보의 캐싱은 반드시 이 클래스 밖에서 이루어져야 한다는 뜻이기도 합니다.
이 클래스에는 인증 결과를 나타내는 중첩 클래스들이 정의되어 있어요. Authenticator.Result는 authenticate 메서드 반환 타입의 기반 클래스이고, Authenticator.Success는 인증이 성공했음을, Authenticator.Failure는 인증 실패를, Authenticator.Retry는 인증을 다시 시도해야 함을 나타냅니다.
생성자
Authenticator()— 보호된 생성자로, 하위 클래스가 호출합니다.
메서드
authenticate(HttpExchange exch)— 들어오는 각 요청을 인증하기 위해 호출됩니다. 구현은 상황에 맞게Authenticator.Failure,Authenticator.Success,Authenticator.Retry중 하나를 반환해야 해요.
각 결과의 의미를 보면 이래요.
Failure— 인증이 완료됐지만 잘못된 자격 증명으로 인해 실패했음을 뜻합니다.Success— 인증이 성공했으며,Authenticator.Success.getPrincipal()을 호출해 사용자를 나타내는Principal객체를 얻을 수 있음을 의미합니다.Retry— 또 다른 HTTP 교환(exchange)이 필요함을 나타냅니다. 클라이언트로 보내야 할 응답 헤더는 주어진HttpExchange에 설정하고, 반환할 응답 코드는Retry객체 안에 제공해야 해요.Retry는 여러 번 발생할 수 있습니다.