CallbackHandler — 콜백 처리 핸들러
CallbackHandler — 콜백 처리 핸들러
CallbackHandler는 애플리케이션이 구현해서 기본 보안 서비스에 전달하는 인터페이스예요. 보안 서비스는 이를 통해 애플리케이션과 상호작용해서 사용자 이름·비밀번호 같은 특정 인증 데이터를 얻거나, 오류·경고 메시지 같은 특정 정보를 표시해요.
본문
public interface CallbackHandler
어떻게 구현할까요?
CallbackHandler는 애플리케이션 의존적인 방식으로 구현돼요. 예를 들어 GUI(graphical user interface) 애플리케이션용 구현은 요청된 정보를 묻거나 오류 메시지를 표시하는 창을 띄울 수 있어요. 구현이 최종 사용자에게 묻지 않고 대체 소스에서 요청된 정보를 얻도록 선택할 수도 있어요.
기본 보안 서비스는 개별 Callback 객체를 CallbackHandler에 전달함으로써 여러 종류의 정보를 요청해요. CallbackHandler 구현은 전달받은 Callback에 따라 정보를 검색·표시하는 방법을 결정해요. 예를 들어 기본 서비스가 사용자를 인증하려고 사용자 이름과 비밀번호가 필요하면 NameCallback과 PasswordCallback을 사용해요. CallbackHandler는 그러면 사용자 이름과 비밀번호를 직렬로 묻거나, 하나의 창에서 둘 다 묻도록 선택할 수 있어요.
메서드
void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException— 제공된Callback에서 요청된 정보를 검색하거나 표시해요.handle메서드 구현은 전달된Callback객체의 인스턴스들을 검사해서 요청된 정보를 검색·표시해요. 아래 예시 코드가handle구현이 어떤 모습인지 보여줘요. 이 코드는 안내용일 뿐이라서, 적절한 오류 처리를 포함한 많은 세부 사항은 생략돼 있어요.
기본 CallbackHandler
기본 CallbackHandler 클래스 구현은 auth.login.defaultCallbackHandler 보안 속성 값을 설정해 지정할 수 있어요. 그 속성이 CallbackHandler 구현 클래스의 완전한 이름으로 설정되면, LoginContext가 지정된 CallbackHandler를 로드해서 기본 LoginModules에 전달해요. LoginContext는 기본 핸들러가 제공되지 않았을 때만 로드해요. 모든 기본 핸들러 구현은 인자 없는 공개 생성자를 제공해야 해요.
관련
- 보안 속성(security properties) 참고