JavaTM 2 Platform
Standard Ed. 5.0

javax.security.sasl
ÀÎÅÍÆäÀ̽º SaslServer


public interface SaslServer

SASL ÀÎÁõÀ» ¼­¹ö·Î¼­ ½ÇÇàÇÕ´Ï´Ù.

LDAP ¼­¹ö¿Í °°Àº ¼­¹ö´Â ƯÁ¤ÀÇ SASL µµ±¸¿¡ ÀÇÇØ Á¤ÀÇµÈ ÀÎÁõÀ» ½ÇÇàÇϱâ À§Çؼ­ ÀÌ Å¬·¡½ºÀÇ ÀνºÅϽº¸¦ ÃëµæÇÕ´Ï´Ù. SaslServer ÀνºÅϽº¿¡ ´ëÇÑ ¸Þ¼­µå¸¦ È£ÃâÇϸé, SaslServer¿¡ ÀÇÇØ ±¸ÇöµÈ SASL µµ±¸¿¡ µû¶ó 縰Áö°¡ ÀÛ¼ºµË´Ï´Ù. ÀÎÁõÀÌ Ã³¸®µÉ ¶§, SASL ¼­¹öÀÇ ÀÎÁõ ±³È¯ »óÅ°¡ ¾ÏȣȭµË´Ï´Ù.

´ÙÀ½¿¡ LDAP ¼­¹ö°¡ ¾î¶»°Ô SaslServer¸¦ »ç¿ëÇÒ±îÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù. ¿ì¼±, Ŭ¶óÀ̾ðÆ®¿¡ ÀÇÇØ ¿ä±¸µÈ SASL µµ±¸ ÀÇ SaslServer ÀνºÅϽº¸¦ ÃëµæÇÕ´Ï´Ù.

 SaslServer ss = Sasl.createSaslServer(mechanism, "ldap", myFQDN, props, callbackHandler);
ÀÌ°ÍÀ¸·Î ¼­¹ö¸¦ ÀÎÁõ¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î LDAP ¼­¹ö°¡ SASL µµ±¸ ÀÇ À̸§°ú (¿É¼ÇÀÇ) Ãʱâ ÀÀ´äÀ» Æ÷ÇÔÇÑ LDAP BIND ¿ä±¸¸¦ ¼ö½ÅÇß´Ù°í Çϸé, ¼­¹ö¸¦ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
 while (! ss.isComplete()) { try { byte[] challenge = ss.evaluateResponse(response);
 if (ss.isComplete()) { status = ldap.sendBindResponse(mechanism, challenge, SUCCESS);
 } else { status = ldap.sendBindResponse(mechanism, challenge,  SASL_BIND_IN_PROGRESS);
 response = ldap.readBindRequest();
 } } catch (SaslException e) {      status = ldap.sendErrorResponse(e);
            break;
 } } if (ss.isComplete() && status == SUCCESS) { String qop = (String) sc.getNegotiatedProperty(Sasl.QOP);
 if (qop ! = null  && (qop.equalsIgnoreCase("auth-int")  || qop.equalsIgnoreCase("auth-conf"))) {

// Use SaslServer.wrap() and SaslServer.unwrap() for future // communication with client ldap.in = new SecureInputStream(ss, ldap.in); ldap.out = new SecureOutputStream(ss, ldap.out); } }

µµÀÔµÈ ¹öÀü :
1.5
°ü·Ã Ç׸ñ:
Sasl, SaslServerFactory

¸Þ¼­µå °³¿ä
 void dispose ()
          SaslServer ÀÌ »ç¿ëÇÏ°í ÀÖ´Â system resource ¶Ç´Â º¸¾È»ó Áß¿äÇÑ Á¤º¸¸¦ ÆıâÇÕ´Ï´Ù.
 byte[] evaluateResponse (byte[] response)
          ÀÀ´ä µ¥ÀÌÅ͸¦ Æò°¡ÇØ, 縰Áö¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
 String getAuthorizationID ()
          ÀÌ ¼¼¼ÇÀÇ Å¬¶óÀ̾ðÆ®¿¡ À¯È¿ÇÑ ÀÎÁõ ID¸¦ º¸°íÇÕ´Ï´Ù.
 String getMechanismName ()
          ÀÌ SASL ¼­¹öÀÇ IANA µî·ÏµÈ µµ±¸ ¸í (CRAM-MD5, GSSAPI µî)À» ¸®ÅÏÇÕ´Ï´Ù.
 Object getNegotiatedProperty (String  propName)
          ³×°í½Ã¿¡ÀÌÆ® µÈ ÇÁ·ÎÆÛƼ¸¦ ²¨³À´Ï´Ù.
 boolean isComplete ()
          ÀÎÁõ ±³È¯ÀÌ ¿Ï·áÇß´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù.
 byte[] unwrap (byte[] incoming, int offset, int len)
          Å¬¶óÀ̾ðÆ®·ÎºÎÅÍ ¼ö½ÅÇÑ ¹ÙÀÌÆ® ¹è¿­À» ·¦ ÇØÁ¦ÇÕ´Ï´Ù.
 byte[] wrap (byte[] outgoing, int offset, int len)
          Å¬¶óÀ̾ðÆ®¿¡ ¼Û½ÅÇÏ´Â ¹ÙÀÌÆ® ¹è¿­À» ·¦ ÇÕ´Ï´Ù.
 

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

getMechanismName

String  getMechanismName()
ÀÌ SASL ¼­¹öÀÇ IANA µî·ÏµÈ µµ±¸ ¸í (CRAM-MD5, GSSAPI µî)À» ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
IANA µî·ÏµÈ µµ±¸ ¸íÀ» ³ªÅ¸³»´Â null ÀÌ¿ÜÀÇ Ä³¸¯ÅÍ ¶óÀÎ

evaluateResponse

byte[] evaluateResponse(byte[] response)
                        throws SaslException 
ÀÀ´ä µ¥ÀÌÅ͸¦ Æò°¡ÇØ, 縰Áö¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ÀÎÁõ ÇÁ·Î¼¼½º½Ã¿¡ Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍÀÇ ÀÀ´äÀ» ¼ö½ÅÇϸé, Ŭ¶óÀ̾ðÆ®¿¡ ¼Û½ÅÇÏ´Â ´ÙÀ½ÀÇ ÀûÀýÇÑ Ã§¸°Áö¸¦ ÁغñÇϱâ À§Çؼ­ ÀÌ ¸Þ¼­µå°¡ È£ÃâµË´Ï´Ù. ÀÎÁõ¿¡ ¼º°øÇØ, ´õ ÀÌ»ó Ŭ¶óÀ̾ðÆ®¿¡ ¼Û½ÅÇϴ ç¸°Áö µ¥ÀÌÅÍ°¡ ¾ø´Â °æ¿ì, 縰Áö´Â nullÀÌ µË´Ï´Ù. 縰Áö¸¦ Ŭ¶óÀ̾ðÆ®¿¡ ¼Û½ÅÇØ ÀÎÁõÀ» ¼ÓÇàÇÒ ÇÊ¿ä°¡ ÀÖ´Â °æ¿ì, ¶Ç´Â ÀÎÁõ¿¡ ¼º°øÇßÁö¸¸, 縰Áö µ¥ÀÌÅ͸¦ Ŭ¶óÀ̾ðÆ®·Î ó¸®ÇÒ ÇÊ¿ä°¡ ÀÖ´Â °æ¿ì´Â null ÀÌ¿ÜÀÇ °ªÀÌ µË´Ï´Ù. evaluateResponse()¸¦ È£ÃâÇÑ µÚ´Â Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍÀÇ ÀÀ´äÀÌ ¶ÇÇÑ ÇÊ¿äÇÑ°¡ ¾î¶²°¡¸¦ ÆÇÁ¤Çϱâ À§Çؼ­ isComplete()°¡ È£ÃâµË´Ï´Ù.

ÆĶó¹ÌÅÍ:
response - Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¼Û½ÅµÇ´Â null ÀÌ¿ÜÀÇ ÀÀ´ä. ºñ¾îÀÖ´Â °æ¿ìµµ ÀÖ´Ù
¹Ýȯ°ª:
Ŭ¶óÀ̾ðÆ®¿¡ ¼Û½ÅÇϴ ç¸°Áö (nullÀÎ °æ¿ìµµ ÀÖ´Ù). ÀÎÁõ¿¡ ¼º°øÇØ, ´õ ÀÌ»ó Ŭ¶óÀ̾ðÆ®¿¡ ¼Û½ÅÇϴ ç¸°Áö µ¥ÀÌÅÍ°¡ ¾ø´Â °æ¿ì´Â nullÀÌ µÈ´Ù
¿¹¿Ü:
SaslException - ÀÀ´äÀÇ Ã³¸®½Ã ¶Ç´Â 縰ÁöÀÇ ÀÛ¼º½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

isComplete

boolean isComplete()
ÀÎÁõ ±³È¯ÀÌ ¿Ï·áÇß´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·ÎevaluateResponse()¸¦ È£ÃâÇÑ ÈÄ¿¡ ÀÎÁõÀÌ Á¤»óÀûÀ¸·Î ¿Ï·áÇß´ÂÁö, ¼ÓÇàÇÒ ÇÊ¿ä°¡ ÀÖ´ÂÁö¸¦ ÆÇÁ¤Çϱâ À§Çؼ­ È£ÃâÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÎÁõ ±³È¯ÀÌ ¿Ï·áÇßÀ» °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false

getAuthorizationID

String  getAuthorizationID()
ÀÌ ¼¼¼ÇÀÇ Å¬¶óÀ̾ðÆ®¿¡ À¯È¿ÇÑ ÀÎÁõ ID¸¦ º¸°íÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â isComplete()°¡ true¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì¿¡°Ô¸¸ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù .

¹Ýȯ°ª:
Ŭ¶óÀ̾ðÆ®ÀÇ ÀÎÁõ ID
¿¹¿Ü:
IllegalStateException - ÀÌ ÀÎÁõ ¼¼¼ÇÀÌ ¿Ï·áÇÏÁö ¾Ê¾Ò´ø °æ¿ì

unwrap

byte[] unwrap(byte[] incoming,
              int offset,
              int len)
              throws SaslException 
Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¼ö½ÅÇÑ ¹ÙÀÌÆ® ¹è¿­À» ·¦ ÇØÁ¦ÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ÀÎÁõ ±³È¯ÀÌ ¿Ï·áÇß´Ù (isComplete()°¡ true¸¦ µ¹·ÁÁØ) ³ªÁß¿¡ ÀÎÁõ ±³È¯ÀÇ º¸È£ Ç°Áú·Î¼­ ³×°í½Ã¿¡ÀÌÆ® µÈ Á¤ÇÕ¼º ¶Ç´Â ±â¹Ð¼ºÀÌ °®ÃçÁö°í ÀÖ´Â °æ¿ì¿¡°Ô¸¸ È£ÃâÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â IllegalStateExceptionÀÌ ¹ß»ý µË´Ï´Ù.

incoming´Â ±æÀ̸¦ ³ªÅ¸³»´Â ÃÖÃÊÀÇ 4°³ÀÇ 8Áßâ Çʵ带 Á¦¿ÜÇÑ, RFC 2222¿¡ Á¤ÀÇµÈ SASL ¹öÆÛÀÇ ³»¿ëÀÔ´Ï´Ù. offset¿Í len´Â incoming »ç¿ë ºÎºÐÀ» ÁöÁ¤ÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
incoming - Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¼ö½ÅÇÑ encode µÈ ¹ÙÀÌÆ®¸¦ Æ÷ÇÔÇÑ null ÀÌ¿ÜÀÇ ¹ÙÀÌÆ® ¹è¿­
offset - »ç¿ëÇÏ´Â ¹ÙÀÌÆ®ÀÇ incoming¿¡ ¼­ÀÇ °³½Ã À§Ä¡
len - »ç¿ëÇÏ´Â incoming ¹ÙÀÌÆ®¼ö
¹Ýȯ°ª:
º¹È£È­ µÈ ¹ÙÀÌÆ®¸¦ Æ÷ÇÔÇÑ null ÀÌ¿ÜÀÇ ¹ÙÀÌÆ® ¹è¿­
¿¹¿Ü:
SaslException - incoming¸¦ Á¤»óÀûÀ¸·Î ·¦ ÇØÁ¦ÇÒ ¼ö ¾ø´Â °æ¿ì
IllegalStateException - ÀÎÁõ ±³È¯ÀÌ ¿Ï·áÇÏÁö ¾Ê¾Ò´ø °æ¿ì, ¶Ç´Â ³×°í½Ã¿¡ÀÌÆ® µÈ º¸È£ Ç°Áú¿¡ Á¤ÇÕ¼ºµµ ±â¹Ð¼ºµµ °®ÃçÁöÁö ¾ÊÀº °æ¿ì

wrap

byte[] wrap(byte[] outgoing,
            int offset,
            int len)
            throws SaslException 
Ŭ¶óÀ̾ðÆ®¿¡ ¼Û½ÅÇÏ´Â ¹ÙÀÌÆ® ¹è¿­À» ·¦ ÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ÀÎÁõ ±³È¯ÀÌ ¿Ï·áÇß´Ù (isComplete()°¡ true¸¦ µ¹·ÁÁØ) ³ªÁß¿¡ ÀÎÁõ ±³È¯ÀÇ º¸È£ Ç°Áú·Î¼­ ³×°í½Ã¿¡ÀÌÆ® µÈ Á¤ÇÕ¼º ¶Ç´Â ±â¹Ð¼ºÀÌ °®ÃçÁö°í ÀÖ´Â °æ¿ì¿¡°Ô¸¸ È£ÃâÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â SaslExceptionÀÌ ¹ß»ý µË´Ï´Ù.

ÀÌ ¸Þ¼­µåÀÇ °á°ú´Â ±æÀ̸¦ ³ªÅ¸³»´Â ÃÖÃÊÀÇ 4°³ÀÇ 8Áßâ Çʵ带 Á¦¿ÜÇÑ, RFC 2222¿¡ Á¤ÀÇµÈ SASL ¹öÆÛÀÇ ³»¿ëÀ» ±¸¼ºÇÕ´Ï´Ù. offset¿Í len´Â outgoing »ç¿ë ºÎºÐÀ» ÁöÁ¤ÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
outgoing - encode ÇÏ´Â ¹ÙÀÌÆ®¸¦ Æ÷ÇÔÇÑ null ÀÌ¿ÜÀÇ ¹ÙÀÌÆ® ¹è¿­
offset - »ç¿ëÇÏ´Â ¹ÙÀÌÆ®ÀÇ outgoing¿¡ ¼­ÀÇ °³½Ã À§Ä¡
len - »ç¿ëÇÏ´Â outgoing ¹ÙÀÌÆ®¼ö
¹Ýȯ°ª:
encode µÈ ¹ÙÀÌÆ®¸¦ Æ÷ÇÔÇÑ null ÀÌ¿ÜÀÇ ¹ÙÀÌÆ® ¹è¿­
¿¹¿Ü:
SaslException - outgoing¸¦ Á¤»óÀûÀ¸·Î ·¦ ÇÒ ¼ö ¾ø´Â °æ¿ì
IllegalStateException - ÀÎÁõ ±³È¯ÀÌ ¿Ï·áÇÏÁö ¾Ê¾Ò´ø °æ¿ì, ¶Ç´Â ³×°í½Ã¿¡ÀÌÆ® µÈ º¸È£ Ç°Áú¿¡ Á¤ÇÕ¼ºµµ ±â¹Ð¼ºµµ °®ÃçÁöÁö ¾ÊÀº °æ¿ì

getNegotiatedProperty

Object  getNegotiatedProperty(String  propName)
³×°í½Ã¿¡ÀÌÆ® µÈ ÇÁ·ÎÆÛƼ¸¦ ²¨³À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ÀÎÁõ ±³È¯ÀÌ ¿Ï·áÇß´Ù (isComplete()°¡ true¸¦ µ¹·ÁÁØ) ³ªÁß¿¡ ¸¶¼Å È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù . ±×·¸Áö ¾ÊÀº °æ¿ì´Â IllegalStateExceptionÀÌ ¹ß»ý µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
propName - ÇÁ·ÎÆÛƼ
¹Ýȯ°ª:
³×°í½Ã¿¡ÀÌÆ® µÈ ÇÁ·ÎÆÛƼÀÇ °ª. nullÀÎ °æ¿ì´Â ÇÁ·ÎÆÛƼ°¡ ³×°í½Ã¿¡ÀÌÆ® µÇÁö ¾Ê¾Ò´ÂÁö, ÀÌ µµ±¸¿¡ Àû¿ëÇÒ ¼ö ¾ø´Ù
¿¹¿Ü:
IllegalStateException - ÀÌ ÀÎÁõ ±³È¯ÀÌ ¿Ï·áÇÏÁö ¾Ê¾Ò´ø °æ¿ì

dispose

void dispose()
             throws SaslException 
SaslServer°¡ »ç¿ëÇÏ°í ÀÖ´Â system resource ¶Ç´Â º¸¾È»ó Áß¿äÇÑ Á¤º¸¸¦ ÆıâÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇϸé, SaslServer ÀνºÅϽº°¡ ¹«È¿°¡ µË´Ï´Ù. ÀÌ ¸Þ¼­µå³ª¹«µîÀÔ´Ï´Ù.

¿¹¿Ü:
SaslException - ÀÚ¿øÀ» ÆıâÇÏ°í ÀÖÀ» ¶§ ¹®Á¦°¡ ¹ß»ýÇßÀ» °æ¿ì

JavaTM 2 Platform
Standard Ed. 5.0

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