|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ |
ÂüÁ¶Ã³:
¼³¸í
ÀÎÅÍÆäÀ̽º °³¿ä | |
---|---|
Control | ÀÌ ÀÎÅÍÆäÀ̽º´Â ¡¸RFC 2251¡¹À¸·Î Á¤Àǵǰí ÀÖµµ·Ï LDAPv3 ÄÁÆ®·ÑÀ» Ç¥½ÃÇÕ´Ï´Ù. |
ExtendedRequest | ÀÌ ÀÎÅÍÆäÀ̽º´Â ¡¸RFC 2251¡¹À¸·Î Á¤Àǵǰí ÀÖ´Â LDAPv3 È®Àå Á¶ÀÛÀÇ ¿ä±¸¸¦ ³ªÅ¸³À´Ï´Ù. |
ExtendedResponse | ÀÌ ÀÎÅÍÆäÀ̽º´Â ¡¸RFC 2251¡¹À¸·Î Á¤Àǵǰí ÀÖ´Â LDAP È®Àå Á¶ÀÛÀÇ ÀÀ´äÀ» ³ªÅ¸³À´Ï´Ù. |
HasControls | ÀÌ ÀÎÅÍÆäÀ̽º´Â °´Ã¼°¡ NamingEnumerations ·Î µ¹·ÁÁÖ°íÁú ¶§, ÄÁÆ®·ÑÀ» µ¹·ÁÁִµ¥ »ç¿ëµË´Ï´Ù. |
LdapContext | ÀÌ ÀÎÅÍÆäÀ̽º´Â LDAPv3 ½ºÅ¸ÀÏÀÇ ÄÁÆ®·ÑÀ» °¡Áö´Â Á¶ÀÛ°ú LDAPv3 ½ºÅ¸ÀÏÀÇ È®Àå Á¶ÀÛÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â ÄÁÅØ½ºÆ®¸¦ ³ªÅ¸³À´Ï´Ù. |
UnsolicitedNotification | ÀÌ ÀÎÅÍÆäÀ̽º´Â ¡¸RFC 2251¡¹À¸·Î Á¤ÀÇµÈ ºñ¿äû ÅëÁö¸¦ ³ªÅ¸³À´Ï´Ù. |
UnsolicitedNotificationListener | ÀÌ ÀÎÅÍÆäÀ̽º´Â UnsolicitedNotificationEvent¸¦ ó¸®Çϱâ À§ÇÑ °ÍÀÔ´Ï´Ù. |
Ŭ·¡½º °³¿ä | |
---|---|
BasicControl | ÀÌ Å¬·¡½º´Â Control ÀÎÅÍÆäÀ̽ºÀÇ ±âº»ÀûÀÎ ±¸ÇöÀ» Á¦°øÇÕ´Ï´Ù. |
ControlFactory | ÀÌ abstract Ŭ·¡½º´Â LDAPv3 ÄÁÆ®·ÑÀÇ ÀÛ¼º¿¡ »ç¿ëÇÏ´Â ÆÑÅ丮¸¦ Ç¥½ÃÇÕ´Ï´Ù. |
InitialLdapContext | ÀÌ Å¬·¡½º´Â LDAPv3 ½ºÅ¸ÀÏÀÇ È®Àå Á¶ÀÛ ¹× È®Àå ÄÁÆ®·ÑÀ» ½ÇÇàÇϱâ À§ÇÑ °³½Ã ÄÁÅØ½ºÆ® ÀÔ´Ï´Ù. |
LdapName | ÀÌ Å¬·¡½º´Â RFC 2253 À¸·Î °¡¸®Å°´Â ½Äº°¸íÀ» ³ªÅ¸³À´Ï´Ù. |
ManageReferralControl | ÂüÁ¶ °´Ã¼ ¹× ±× ¿ÜÀÇ Æ¯¼öÇÑ LDAP °´Ã¼¸¦, º¸Åë ÀÇ LDAP °´Ã¼·Î¼ Á¶ÀÛÇϵµ·Ï ¿ä±¸ÇÕ´Ï´Ù. |
PagedResultsControl | °Ë»ö Á¶ÀÛÀÇ °á°ú¸¦, ÁöÁ¤ÇÑ »çÀÌÁî ¸¶´Ù Á¤¸®ÇØ µ¹·ÁÁÖµµ·Ï LDAP ¼¹ö¿¡ ¿ä±¸ÇÕ´Ï´Ù. |
PagedResultsResponseControl | 1 ¼¼Æ®ÀÇ °Ë»ö °á°ú°¡ Á¾·áÇÑ °ÍÀ» ³ªÅ¸³À´Ï´Ù. |
Rdn | ÀÌ Å¬·¡½º´Â »ó´ë ½Äº°¸í, ¶Ç´Â ½Äº°¸íÀÇ ÄÄÆÛ³ÍÆ®ÀÎ RDN (RFC 2253 À» ÂüÁ¶)¸¦ ³ªÅ¸³À´Ï´Ù. |
SortControl | °Ë»ö Á¶ÀÛÀÇ °á°ú¸¦ ¼ÒÆ® ÇÏ°í ³ª¼ µ¹·ÁÁÖµµ·Ï LDAP ¼¹ö¿¡ ¿ä±¸ÇÕ´Ï´Ù. |
SortKey | ¼ÒÆ® Ű¿Í °ü·Ã ¼ÒÆ® ÆÄ¶ó¹ÌÅÍÀÔ´Ï´Ù. |
SortResponseControl | °Ë»ö °á°ú°¡ ¿ä±¸´ë·Î ¼ÒÆ® µÇ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ³ªÅ¸³À´Ï´Ù. |
StartTlsRequest | ÀÌ Å¬·¡½º´Â Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security¿¡ Á¤Àǵǰí ÀÖ´Â LDAPv3 StartTLS È®Àå ¿ä±¸¸¦ ±¸ÇöÇÕ´Ï´Ù. |
StartTlsResponse | ÀÌ Å¬·¡½º´Â Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security¿¡ Á¤Àǵǰí ÀÖ´Â LDAPv3 StartTLS È®Àå ÀÀ´äÀ» ±¸ÇöÇÕ´Ï´Ù. |
UnsolicitedNotificationEvent | ÀÌ Å¬·¡½º´Â LDAP ¼¹ö·ÎºÎÅÍ ¼Û½ÅµÈ ºñ¿äû ÅëÁö¿¡ ÀÀÇØ Æ®¸®°Å µÈ À̺¥Æ®¸¦ ³ªÅ¸³À´Ï´Ù. |
¿¹¿Ü °³¿ä | |
---|---|
LdapReferralException | ÀÌ abstract Ŭ·¡½º´Â LDAP ÂüÁ¶ ¿¹¿Ü¸¦ ³ªÅ¸³»±â À§Çؼ »ç¿ëµË´Ï´Ù. |
LDAPv3 È®Àå Á¶ÀÛ°ú ÄÁÆ®·ÑÀ» Áö¿ø ÇÕ´Ï´Ù.
ÀÌ ÆÐŰÁö´Â Java Naming and Directory InterfaceTM (JNDI)ÀÇ µð·ºÅ丮 Á¶ÀÛÀ» È®ÀåÇÕ´Ï´Ù. JNDI ´Â Java ÇÁ·Î±×·¥ ¾ð¾î·Î ÀÛ¼ºµÈ ¾îÇø®ÄÉÀ̼ǿ¡ ³×ÀÌ¹Ö ±â´É ¹× µð·ºÅ丮 ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. JNDI´Â ƯÁ¤ÀÇ ³×ÀÌ¹Ö ¶Ç´Â µð·ºÅ丮 ¼ºñ½º ±¸ÇöÀ¸·ÎºÎÅÍ µ¶¸³ÇØ ¼³°èµÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡ »õ·Î¿î ¼ºñ½º ¹× ÀÌ¹Ì ¹èÄ¡µÇ°í ÀÖ´Â ´Ù¾çÇÑ ¼ºñ½º¿¡ °øÅëÀÇ ¹æ¹ýÀ¸·Î ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ÆÐŰÁö´Â RFC 2251 À¸·Î Á¤ÀÇµÈ LDAPv3 È®Àå Á¶ÀÛ°ú ÄÁÆ®·ÑÀ» ó¸®ÇÏ´Â ¾îÇø®ÄÉÀÌ¼Ç ¹× ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õÀü¿ëÀÇ °ÍÀÔ´Ï´Ù. ÀÌ ÆÐŰÁöÀÇ ÄÚ¾î ÀÎÅÍÆäÀ̽º´Â LdapContext·Î À̰ÍÀº È®Àå Á¶ÀÛ ½ÇÇà ¹× ÄÁÆ®·Ñ ó¸®ÀÇ ÄÁÅØ½ºÆ® ÀÇ ¸Þ¼µå¸¦ Á¤ÀÇÇÕ´Ï´Ù.
ÀÌ ÆÐŰÁö´Â È®Àå Á¶ÀÛÀÇ Àμö¸¦ ³ªÅ¸³»´Â ExtendedRequest ÀÎÅÍÆäÀ̽º ¹× È®Àå Á¶ÀÛÀÇ °á°ú¸¦ ³ªÅ¸³»´Â ExtendedResponse ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÕ´Ï´Ù. È®Àå ÀÀ´äÀº Ç×»ó È®Àå ¿ä±¸¿Í Æä¾î°¡ µË´Ï´Ù¸¸, È®Àå ¿ä±¸´Â ¹Ýµå½Ã È®Àå ÀÀ´ä°ú Æä¾î°¡ µÉ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. Áï, ´ëÀÀÇÏ´Â È®Àå ÀÀ´äÀÌ ¾ø´Â È®Àå ¿ä±¸¸¦ °¡Áú ¼ö ÀÖ´Ù°í ÇÏ´Â °ÍÀÔ´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀº º¸Åë, ÀÌ·¯ÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á÷Á¢Àº ó¸®ÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å¿¡ ÀÌ·¯ÇÑ ÀÎÅÍÆäÀ̽º¸¦ ¡¸±¸ÇöÇϰí ÀÖ´Ù¡¹Å¬·¡½º¸¦ ó¸®ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ÀÌ·¯ÇÑ Å¬·¡½º¸¦, IETF¿¡ ÀÇÇØ Ç¥ÁØÈ µÈ È®Àå Á¶ÀÛÀ¸·Î¼ ÃëµæÇϵ簡 ȤÀº º¥´õ °íÀ¯ÀÇ È®Àå Á¶ÀÛÀÇ µð·ºÅ丮 º¥´õ·ÎºÎÅÍ ÃëµæÇÕ´Ï´Ù. ¿ä±¸ Ŭ·¡½º¿¡´Â ÇüÅ º¸ÁõµÈ »ç¿ëÀÚ°¡ »ç¿ëÇϱ⠽¬¿î ¹æ¹ýÀ¸·Î Àμö¸¦ ¹Þ¾ÆµéÀÌ´Â »ý¼ºÀÚ°¡ ÇÊ¿äÇØ, ÀÀ´ä Ŭ·¡½º¿¡´Â ÇüÅ º¸ÁõµÈ »ç¿ëÀÚ°¡ »ç¿ëÇϱ⠽¬¿î ¹æ¹ýÀ¸·Î ÀÀ´äÀÇ µ¥ÀÌÅ͸¦ ÃëµæÇϱâ À§ÇÑ ¾×¼¼½º ¸Þ¼µå°¡ ÇÊ¿äÇÕ´Ï´Ù. ³»ºÎÀûÀ¸·Î´Â ¿ä±¸ Ŭ·¡½º ¹× ÀÀ´ä Ŭ·¡½º´Â BER Ä¡ÀÇ encode ¹× º¹È£È¸¦ ó¸®ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î LDAP ¼¹ö°¡ ¡¸½Ã°£ Ãëµæ¡¹ÀÇ È®Àå Á¶ÀÛÀ» Áö¿ø Çϰí ÀÖ´Â °æ¿ì, LDAP ¼¹ö´Â ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÌ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï, GetTimeRequest ³ª GetTimeResponse µîÀÇ Å¬·¡½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ÀÌ·¯ÇÑ ±â´ÉÀ» ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÕ´Ï´Ù.
GetTimeResponse resp = (GetTimeResponse) ectx.extendedOperation(new GetTimeRequest()) ;long time = resp.getTime();
GetTimeRequest ¹× GetTimeResponse Ŭ·¡½º´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
public class GetTimeRequest implements ExtendedRequest { // User-friendly constructor public GetTimeRequest() { }; // Methods used by service providers public String getID() { return GETTIME_REQ_OID; } public byte[] getEncodedValue() { return null; // no value needed for get time request } public ExtendedResponse createExtendedResponse( String id, byte[] berValue, int offset, int length) throws NamingException { return new GetTimeResponse(id, berValue, offset, length); }}public class GetTimeResponse() implements ExtendedResponse { long time; // called by GetTimeRequest.createExtendedResponse() public GetTimeResponse(String id, byte[] berValue, int offset, int length) throws NamingException { // check validity of id long time = ... // decode berValue to get time } // Type-safe and User-friendly methods public java.util.Date getDate() { return new java.util.Date(time); } public long getTime() { return time; } // Low level methods public byte[] getEncodedValue() { return // berValue saved; } public String getID() { return GETTIME_RESP_OID; }}
¾îÇø®ÄÉÀ̼ÇÀº º¸Åë, ÀÌ ÀÎÅÍÆäÀ̽º¸¦ Á÷Á¢Àº ó¸®ÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å¿¡ ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ¡¸±¸ÇöÇϰí ÀÖ´Ù¡¹Å¬·¡½º¸¦ ó¸®ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ÄÁÆ®·Ñ Ŭ·¡½º¸¦, Ç¥ÁØÈ µÈ ÄÁÆ®·ÑÀÇ repertoireÀÇ ÀϺημ IETF ·ÎºÎÅÍ ÃëµæÇϵ簡 ȤÀº º¥´õ °íÀ¯ ÄÁÆ®·ÑÀÇ µð·ºÅ丮 º¥´õ·ÎºÎÅÍ ÃëµæÇÕ´Ï´Ù. ¿ä±¸ ÄÁÆ®·Ñ Ŭ·¡½º¿¡´Â ÇüÅ º¸ÁõµÈ »ç¿ëÀÚ°¡ »ç¿ëÇϱ⠽¬¿î ¹æ¹ýÀ¸·Î Àμö¸¦ ¹Þ´Â »ý¼ºÀÚ°¡ ÇÊ¿äÇØ, ÀÀ´ä ÄÁÆ®·Ñ Ŭ·¡½º¿¡´Â ÇüÅ º¸ÁõµÈ »ç¿ëÀÚ°¡ »ç¿ëÇϱ⠽¬¿î ¹æ¹ýÀ¸·Î ÀÀ´äÀÇ µ¥ÀÌÅ͸¦ ÃëµæÇϱâ À§ÇÑ ¾×¼¼½º ¸Þ¼µå°¡ ÇÊ¿äÇÕ´Ï´Ù. ³»ºÎÀûÀ¸·Î´Â ¿ä±¸ ÄÁÆ®·Ñ Ŭ·¡½º ¹× ÀÀ´ä ÄÁÆ®·Ñ Ŭ·¡½º´Â BER Ä¡ÀÇ encode ¹× º¹È£È¸¦ Ãë±ÞÇÕ´Ï´Ù.
¿¹¸¦ µé¾î LDAP ¼¹ö°¡ ¡¸¼¸í ÷ºÎ °á°ú¡¹ÀÇ ¿ä±¸ ÄÁÆ®·ÑÀ» Áö¿ø Çϰí ÀÖ´Ù°í ÇÕ´Ï´Ù. ÀÌ ÄÁÆ®·ÑÀº ¿ä±¸¿Í ÇÔ²² ¼Û½ÅµÇ¾úÀ» ¶§, ¼¹ö¿¡ ÀüÀÚ¼¸í ÷ºÎ·Î Á¶ÀÛ °á°ú¸¦ µ¹·ÁÁÖµµ·Ï ¿ä±¸ÇÕ´Ï´Ù. ¶Ç, ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÌ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï, SignedResultsControl Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ÀÌ Å¬·¡½º¸¦ ´ÙÀ½°ú °°ÀÌ ÀÌ¿ëÇÕ´Ï´Ù.
SortControl Ŭ·¡½º´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.Control[] reqCtls = new Control[] {new SignedResultsControl(Control.CRITICAL)};ectx.setRequestControls(reqCtls) ;NamingEnumeration enum = ectx.search(...);
public class SignedResultsControl implements Control { // User-friendly constructor public SignedResultsControl(boolean criticality) { // assemble the components of the request control }; // Methods used by service providers public String getID() { return // control's object identifier } public byte[] getEncodedValue() { return // ASN. 1 BER encoded control value } ...}
¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ ÀÀ´ä ÄÁÆ®·ÑÀ» ¼ö½ÅÇϸé, ÀÌ ÇÁ·Î¹ÙÀÌ´õ´Â ControlFactory Ŭ·¡½º¸¦ »ç¿ëÇØ, Control ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϴ ƯÁ¤ÀÇ Å¬·¡½º¸¦ »ý¼ºÇÕ´Ï´Ù.
LDAP ¼¹ö´Â LDAP Á¶ÀÛ°ú ÇÔ²² ÀÀ´ä ÄÁÆ®·ÑÀ» ´ä½ÅÇÒ ¼ö ÀÖ¾î ¶Ç ¸®½ºÆ®³ª °Ë»ö Á¶À۵ ÀÇÇØ ¸®ÅÏµÈ ¿°Å °á°ú¿Í ÇÔ²² ´äÀåÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. LdapContext´Â LDAP Á¶ÀÛ°ú ÇÔ²² ¼Û½ÅµÈ ÀÀ´ä ÄÁÆ®·ÑÀ» ¾ò´Â ¸Þ¼µå (getResponseControls())¸¦ Á¦°øÇØ, HasControls ÀÎÅÍÆäÀ̽º´Â ¿°Å °á°ú¿¡ °ü·ÃÇÑ ÀÀ´ä ÄÁÆ®·ÑÀ» ¾ò´Â µ¥ »ç¿ëµË´Ï´Ù.
¿¹¸¦ µé¾î º¯°æ ¿Ï·á¿¡ µû¶ó LDAP ¼¹ö°¡ ¡¸ID º¯°æ¡¹ÄÁÆ®·ÑÀ» ´äÀåÇÏ´Â °æ¿ì, ¼¹ö´Â ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÌ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ChangeIDControl Ŭ·¡½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº °»½ÅÀ» ½Ç½ÃÇØ, °è¼ÓµÇ¾î ID º¯°æÀ» ÃëµæÇÏ·Á°í ÇÕ´Ï´Ù.
º¥´õ´Â ´ÙÀ½°ú °°Àº ChangeIDControl Ŭ·¡½º ¹× VendorXControlFactory Ŭ·¡½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ´Â LDAP ¼¹ö·ÎºÎÅÍ ÀÀ´ä ÄÁÆ®·ÑÀ» ¼ö½ÅÇßÀ» ¶§, VendorXControlFactory¸¦ »ç¿ëÇÕ´Ï´Ù.// Perform updateContext ctx = ectx.createSubsubcontext("cn=newobj"); // Get response controlsControl[] respCtls = ectx.getResponseControls() ;if (respCtls ! = null) { // Find the one we want for (int i = 0; i < respCtls; i++) { if(respCtls[i] instanceof ChangeIDControl) { ChangeIDControl cctl = (ChangeIDControl) respCtls[i]; System.out.println(cctl.getChangeID()); } }}
public class ChangeIDControl implements Control { long id; // Constructor used by ControlFactory public ChangeIDControl(String OID, byte[] berVal) throws NamingException { // check validity of OID id = // extract change ID from berVal }; // Type-safe and User-friendly method public long getChangeID() { return id; } // Low-level methods public String getID() { return CHANGEID_OID; } public byte[] getEncodedValue() { return // original berVal } ...}public class VendorXControlFactory extends ControlFactory { public VendorXControlFactory () { } public Control getControlInstance(Control orig) throws NamingException { if (isOneOfMyControls(orig.getID())) { ... // determine which of ours it is and call its constructor return (new ChangeIDControl(orig.getID(), orig.getEncodedValue())); } return null; // not one of ours }}
Java Å×Å©³î·¯ÁöÀÇ Web »çÀÌÆ®¿¡¼´Â ´ÙÀ½ÀÇ ¹®¼¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.