JavaTM 2 Platform
Standard Ed. 5.0

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


public interface CallbackHandler

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

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

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

µðÆúÆ®ÀÇ CallbackHandler Ŭ·¡½ºÀÇ ±¸ÇöÀº auth.login.defaultCallbackHandler ½ÃÅ¥·¯Æ¼ ÇÁ·ÎÆÛƼ·Î ÁöÁ¤µÇ°í ÀÖ½À´Ï´Ù. ½ÃÅ¥·¯Æ¼ ÇÁ·ÎÆÛƼ´Â <JAVA_HOME>/lib/security/java.security ¶ó°í ÇÏ´Â ÆÄÀÏ¿¡ ÀÖ´Â Java ½ÃÅ¥·¯Æ¼ ÇÁ·ÎÆÛƼ ÆÄÀÏ·Î ¼³Á¤ÇÕ´Ï´Ù. <JAVA_HOME>´Â JDK°¡ ÀνºÅç µÇ°í ÀÖ´Â µð·ºÅ丮ÀÔ´Ï´Ù.

½ÃÅ¥·¯Æ¼ ÇÁ·ÎÆÛƼ°¡ CallbackHandler ±¸Çö Ŭ·¡½ºÀÇ ¿ÏÀü ÁöÁ¤¸íÀ¸·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, LoginContext´Â ÁöÁ¤ÇÑ CallbackHandler¸¦ ·ÎµåÇØ, ±âº»ÀÌ µÇ´Â LoginModule¿¡ °Ç³×ÁÝ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì, LoginContext´Â µðÆúÆ®ÀÇ Çڵ鷯¸¸À» ·ÎµåÇÕ´Ï´Ù.

¸ðµç µðÆúÆ® Çڵ鷯ÀÇ ±¸ÇöÀº Àμö¸¦ °¡ÁöÁö ¾Ê´Â public »ý¼ºÀÚ¸¦ Á¦°øÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


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

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

handle

void handle(Callback [] callbacks)
            throws 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(toc.getMessage());
                    break;
                case TextOutputCallback.ERROR:
                    System.out.println("ERROR: " + toc.getMessage());
                    break;
                case TextOutputCallback.WARNING:
                    System.out.println("WARNING: " + toc.getMessage());
                    break;
                default:
                    throw new IOException("Unsupported message type: " +
                                        toc.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 °´Ã¼ÀÇ ¹è¿­
¿¹¿Ü:
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

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

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.