javax.security.auth.callback
ÀÎÅÍÆäÀ̽º CallbackHandler


public interface CallbackHandler

±âº» ½ÃÅ¥·¯Æ¼ ¼­ºñ½º°¡ À¯Àú¸íÀ̳ª ÆÐ½º¿öµåµîÀÇ Æ¯Á¤ÀÇ ÀÎÁõ µ¥ÀÌÅ͸¦ ÃëµæÇϰųª ¿¡·¯³ª °æ°í ¸Þ¼¼ÁöµîÀÇ Æ¯Á¤ÀÇ Á¤º¸¸¦ Ç¥½ÃÇϰųª ÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ), ¾îÇø®ÄÉÀ̼ÇÀº CallbackHandler ¸¦ ½ÇÀåÇØ, ±âº» ½ÃÅ¥·¯Æ¼ ¼­ºñ½º¿¡ °Ç³×ÁÝ´Ï´Ù.

CallbackHandler ´Â ¾îÇø®ÄÉÀÌ¼Ç °íÀ¯ÀÇ Çü½Ä¿¡¼­ ½ÇÀåµË´Ï´Ù. ¿¹¸¦ µé¾î, ±×·¡ÇÇÄà À¯Àú ÀÎÅÍÆäÀ̽º (GUI)¸¦ °¡Áö´Â ¾îÇø®ÄÉÀ̼ǿ¡ À־ÀÇ ½ÇÀå¿¡¼­´Â, À©µµ¿ì¸¦ pop-up ÇØ, Á¤º¸¸¦ ¿ä±¸ÇÏ´Â prompt³ª, ¿¡·¯ ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¶Ç, ¿ä±¸µÈ Á¤º¸¸¦, ÃÖÁ¾ »ç¿ëÀÚ¿¡°Ô ¹¯´Â °ÍÀÌ ¾Æ´Ï¶ó, ´Ù¸¥ ¼Ò½º·ÎºÎÅÍ ÃëµæÇÏ´Â Àϵµ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

±âº» ½ÃÅ¥·¯Æ¼ ¼­ºñ½º¿¡¼­´Â, °³°³ÀÇ Callback ¸¦ CallbackHandler ¿¡ °Ç³×ÁÖ´Â °ÍÀ¸·Î, ´Ù¾çÇÑ Å¸ÀÔÀÇ Á¤º¸¸¦ ¿ä±¸ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. CallbackHandler ÀÇ ½ÇÀå¿¡¼­´Â, °Ç³×¹Þ´Â Callback ¿¡ ÀÇÇØ ¹Ù²î´Â Á¤º¸ÀÇ Ãëµæ°ú Ç¥½ÃÀÇ ¹æ¹ýÀ» °áÁ¤ÇÏ°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î ±âº» ¼­ºñ½º·Î À¯Àú¸¦ ÀÎÁõÇϱâ À§Çؼ­ À¯Àú¸íÀ¸·Î ÆÐ½º¿öµå°¡ ÇÊ¿äÇÑ °æ¿ì´Â,NameCallback °ú PasswordCallback ¸¦ »ç¿ëÇÕ´Ï´Ù. CallbackHandler ¿¡¼­´Â À¯Àú¸í°ú ÆÐ½º¿öµå¸¦ Â÷·Ê·Î ÀԷ½ÃŰ´ÂÁö, 1 °³ÀÇ À©µµ¿ì³»¿¡ ¾çÂÊ ¸ðµÎ¸¦ ÀԷ½ÃŰ´ÂÁö¸¦ ¼±ÅÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.


¸Þ¼ÒµåÀÇ °³¿ä
 void handle (Callback [] callbacks)
           ÁöÁ¤ÀÇ Callback ³»¿¡¼­ ¿ä±¸µÈ Á¤º¸¸¦ Ãëµæ ¶Ç´Â Ç¥½ÃÇÕ´Ï´Ù.
 

¸Þ¼ÒµåÀÇ »ó¼¼

handle

public void handle(Callback [] callbacks)
            throws java.io.IOException,
                   UnsupportedCallbackException 

ÁöÁ¤ÀÇ Callback ³»¿¡¼­ ¿ä±¸µÈ Á¤º¸¸¦ Ãëµæ ¶Ç´Â Ç¥½ÃÇÕ´Ï´Ù.

handle ¸Þ¼ÒµåÀÇ ½ÇÀå¿¡¼­´Â, °Ç³×¹ÞÀº Callback ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº°¡, ¿ä±¸µÈ Á¤º¸¸¦ Ãëµæ ¶Ç´Â Ç¥½ÃÇÒ ¼ö ÀÖ´ÂÁö ¾î¶²Áö¸¦ È®ÀÎÇÕ´Ï´Ù. handle ¸Þ¼Òµå ½ÇÀåÀÇ µ¿ÀÛÀÇ ½Ç·Ê¸¦, ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù. ÀÌ Äڵ忹´Â °ßº»À» ³ªÅ¸³¾ »ÓÀÔ´Ï´Ù. Äڵ带 °£´ÜÇÏ°Ô Çϱâ À§Çؼ­, ÀûÀýÇÑ ¿¡·¯ 󸮵îÀÇ ÀÚ¼¼ÇÑ °ÍÀº »ý·«Çϰí ÀÖ½À´Ï´Ù.

public void handle(Callback[] callbacks)
throws IOException, UnsupportedCallbackException {
	 for (int i = 0; i < callbacks.length; i++) {
	    if (callbacks[i] instanceof TextOutputCallback) {
 
		// display the message according to the specified type
		TextOutputCallback toc = (TextOutputCallback) callbacks[i];
		switch (toc.getMessageType()) {
		case TextOutputCallback.INFORMATION:
		    System.out.println(td.getMessage());
		    		    break;
		case TextOutputCallback.ERROR:
		    System.out.println("ERROR: " + td.getMessage());
		    break;
		case TextOutputCallback.WARNING:
		    System.out.println("WARNING: " + td.getMessage());
		    break;
		default:
		    throw new IOException("Unsupported message type: " +
					td.getMessageType());
		}
	    } else if (callbacks[i] instanceof NameCallback) {
 
		// prompt the user for a username
		NameCallback nc = (NameCallback) callbacks[i];
 
		// ignore the provided defaultName
		System.err.print(nc.getPrompt());
		System.err.flush();
		nc.setName((new BufferedReader
			(new InputStreamReader(System.in))). readLine());
	    } else if (callbacks[i] instanceof PasswordCallback) {
 
		// prompt the user for sensitive information
		PasswordCallback pc = (PasswordCallback) callbacks[i];
		System.err.print(pc.getPrompt());
		System.err.flush();
		pc.setPassword(readPassword(System.in));
 
	    } else {
		throw new UnsupportedCallbackException
			(callbacks[i], "Unrecognized Callback");
	    }
	 }
 }
  
// Reads user password from given input stream.
private char[] readPassword(InputStream in) throws IOException {
// insert code to read a user password from the input stream
 }
ÆÄ¶ó¹ÌÅÍ:
callbacks - Ãëµæ ¶Ç´Â Ç¥½Ã°¡ ¿ä±¸µÈ Á¤º¸¸¦ Æ÷ÇÔÇÑ ±âº» ½ÃÅ¥·¯Æ¼ ¼­ºñ½º°¡ Á¦°øÇÏ´Â Callback ¿ÀºêÁ§Æ®ÀÇ ¹è¿­
¿¹¿Ü:
java.io.IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

UnsupportedCallbackException - ÀÌ ¸Þ¼ÒµåÀÇ ½ÇÀåÀÌ callbacks ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤µÈ Callback ÀÇ ¾î´ÀÂÊÀ̵çÀ» ¼­Æ÷Æ®ÇÏÁö ¾Ê´Â °æ¿ì


Copyright 2002 Sun Microsystems, Inc. All rights reserved.
»ç¿ë¿¡´Â»ç¿ë Çã¶ô °è¾àÀÌ Àû¿ëµË´Ï´Ù.