티스토리 뷰

CallbackHandler 정의

1
2
3
4
5
6
어떤한 경우에는 LoginModule이 인증 정보를 얻기 위해 사용자와 반드시 커뮤니케이션 해야 합니다. 
LoginModule들은 이 목적으로 javax.security.auth.callback.CallbackHandler를 사용합니다. 
Application은 com.sun.security.auth.callback 패키지에서 제공되는 샘플 구현체 중 하나를 사용하거나  
보다 일반적으로 사용되는 CallbackHandler 구현체 중 하나를 사용할 수 있습니다. 
Application은 LoginContext 인스턴스에 인자로서 CallbackHandler를 건네줍니다. 
LoginContext는 하위 LoginModule들에게 CallbackHandler를 직접 전송합니다.


CallbackHandler는 handle 메소드를 사용해서 Callback 클래스들을 사용합니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 // 기본 모양
 void handle(Callback[] callbacks)
         throws java.io.IOException, UnsupportedCallbackException;
 
// handle이 구현되는 예시
public void handle(Callback[] callbacks)
  throws IOException, UnsupportedCallbackException {
 
  for (int i = 0; i < callbacks.length; i++) {
    if (callbacks[i] instanceof TextOutputCallback) {
 
      // display a message according to a specified type
      . . .
 
    } else if (callbacks[i] instanceof NameCallback) {
 
      // prompt the user for a username
      . . .
 
    } else if (callbacks[i] instanceof PasswordCallback) {
 
      // prompt the user for a password
      . . .
 
    } else {
        throw new UnsupportedCallbackException
         (callbacks[i], "Unrecognized Callback");
    }
  }
}
 
// 사용 예
NameCallback nameCallback = new NameCallback("User name: ");
PasswordCallback passwordCallback = new PasswordCallback("Password: "true);
callbackHandler.handle(new Callback[] { nameCallback, passwordCallback  });


 

Callback 정의

1
2
3
4
5
6
7
CallbackHandler에 전달된 Callback 인터페이스의 구현은 기본 보안 서비스에서 
호출 응용 프로그램과 상호 작용하여 사용자 이름 및 암호와 같은 특정 인증 데이터를 
검색하거나 오류 및 경고 메시지와 같은 특정 정보를 표시 할 수 있습니다.
 
Callback 구현은 기본 보안 서비스에서 요청한 정보를 검색하거나 표시하지 않습니다. 
Callback 구현은 단순히 이러한 요청을 applications에 전달하고 필요한 경우 
applications이 요청 된 정보를 기본 보안 서비스로 반환하는 수단을 제공합니다.




참고사이트


댓글