|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ |
ÂüÁ¶:
¼³¸í
ÀÎÅÍÆäÀ̽ºÀÇ °³¿ä | |
Control | ÀÌ ÀÎÅÍÆäÀ̽º´Â ¡¸RFC 2251¡¹À¸·Î Á¤Àǵǰí ÀÖ°Ô LDAPv3 ÄÁÆ®·ÑÀ» Ç¥½ÃÇÕ´Ï´Ù. |
ExtendedRequest | ÀÌ ÀÎÅÍÆäÀ̽º´Â ¡¸RFC 2251¡¹À¸·Î Á¤Àǵǰí ÀÖ´Â LDAPv3 È®Àå Á¶ÀÛÀÇ ¿ä±¸¸¦ ³ªÅ¸³À´Ï´Ù. |
ExtendedResponse | ÀÌ ÀÎÅÍÆäÀ̽º´Â ¡¸RFC 2251¡¹À¸·Î Á¤Àǵǰí ÀÖ´Â LDAP È®Àå Á¶ÀÛÀÇ ÀÀ´äÀ» ³ªÅ¸³À´Ï´Ù. |
HasControls | ÀÌ ÀÎÅÍÆäÀ̽º´Â ¿ÀºêÁ§Æ®°¡ NamingEnumerations ·Î µ¹·ÁÁÖ¾îÁú ¶§, ÄÁÆ®·ÑÀ» µ¹·ÁÁִµ¥ »ç¿ëµË´Ï´Ù. |
LdapContext | ÀÌ ÀÎÅÍÆäÀ̽º´Â LDAPv3 ½ºÅ¸ÀÏÀÇ ÄÁÆ®·ÑÀ» °¡Áö´Â Á¶ÀÛ°ú LDAPv3 ½ºÅ¸ÀÏÀÇ È®Àå Á¶ÀÛÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â ¹®¸ÆÀ» ³ªÅ¸³À´Ï´Ù. |
UnsolicitedNotification | ÀÌ ÀÎÅÍÆäÀ̽º´Â ¡¸RFC 2251¡¹À¸·Î Á¤ÀÇµÈ ºñ¿äû ÅëÁö¸¦ ³ªÅ¸³À´Ï´Ù. |
UnsolicitedNotificationListener | ÀÌ ÀÎÅÍÆäÀ̽º´Â UnsolicitedNotificationEvent ¸¦ ó¸®Çϱâ À§ÇÑÀÇ °ÍÀÔ´Ï´Ù. |
Ŭ·¡½ºÀÇ °³¿ä | |
ControlFactory | ÀÌ Ãß»ó Ŭ·¡½º´Â LDAPv3 ÄÁÆ®·ÑÀÇ ÀÛ¼º¿¡ »ç¿ëÇÏ´Â ÆÑÅ丮¸¦ Ç¥½ÃÇÕ´Ï´Ù. |
InitialLdapContext | ÀÌ Å¬·¡½º´Â LDAPv3 ½ºÅ¸ÀÏÀÇ È®Àå Á¶ÀÛ ¹× È®Àå ÄÁÆ®·ÑÀ» ½ÇÇàÇϱâ À§ÇÑ °³½Ã ¹®¸ÆÀÔ´Ï´Ù. |
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 ¿¡ ÀÇÇØ Ç¥ÁØÈ µÈ È®Àå Á¶ÀÛÀ¸·Î¼ ÃëµæÇϵ簡, ȤÀº º¥´õ °íÀ¯ÀÇ È®Àå Á¶ÀÛÀÇ µð·ºÅ丮 º¥´õ·ÎºÎÅÍ ÃëµæÇÕ´Ï´Ù. ¿ä±¸ Ŭ·¡½º¿¡´Â ÇüÅ ÇÁ·ÎÅØ¼ÇµÈ À¯Àú°¡ »ç¿ëÇϱ⠽¬¿î ¹æ¹ýÀ¸·Î Àμö¸¦ ¹Þ¾ÆµéÀÌ´Â constructor ÀÌ ÇÊ¿äÇØ, ÀÀ´ä Ŭ·¡½º¿¡´Â ÇüÅ ÇÁ·ÎÅØ¼ÇµÈ À¯Àú°¡ »ç¿ëÇϱ⠽¬¿î ¹æ¹ýÀ¸·Î ÀÀ´äÀÇ µ¥ÀÌÅ͸¦ ÃëµæÇϱâ À§ÇÑ ¾×¼¼½º ¸Þ¼Òµå°¡ ÇÊ¿äÇÕ´Ï´Ù. ³»ºÎÀûÀ¸·Î´Â ¿ä±¸ Ŭ·¡½º ¹× ÀÀ´ä Ŭ·¡½º´Â BER Ä¡ÀÇ encode ¹× º¹È£È(decode)¸¦ ó¸®ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î, 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 ·ÎºÎÅÍ ÃëµæÇϵ簡, ȤÀº º¥´õ °íÀ¯ ÄÁÆ®·ÑÀÇ µð·ºÅ丮 º¥´õ·ÎºÎÅÍ ÃëµæÇÕ´Ï´Ù. ¿ä±¸ ÄÁÆ®·Ñ Ŭ·¡½º¿¡´Â ÇüÅ ÇÁ·ÎÅØ¼ÇµÈ À¯Àú°¡ »ç¿ëÇϱ⠽¬¿î ¹æ¹ýÀ¸·Î Àμö¸¦ ¹Þ´Â constructor ÀÌ ÇÊ¿äÇØ, ÀÀ´ä ÄÁÆ®·Ñ Ŭ·¡½º¿¡´Â ÇüÅ ÇÁ·ÎÅØ¼ÇµÈ À¯Àú°¡ »ç¿ëÇϱ⠽¬¿î ¹æ¹ýÀ¸·Î ÀÀ´äÀÇ µ¥ÀÌÅ͸¦ ÃëµæÇϱâ À§ÇÑ ¾×¼¼½º ¸Þ¼Òµå°¡ ÇÊ¿äÇÕ´Ï´Ù. ³»ºÎÀûÀ¸·Î´Â ¿ä±¸ ÄÁÆ®·Ñ Ŭ·¡½º ¹× ÀÀ´ä ÄÁÆ®·Ñ Ŭ·¡½º´Â BER Ä¡ÀÇ encode ¹× º¹È£È(decode)¸¦ Ãë±ÞÇÕ´Ï´Ù.
¿¹¸¦ µé¾î, LDAP ¼¹ö°¡ ¡¸¼ÒÆ®¡¹ÀÇ ¿ä±¸ ÄÁÆ®·ÑÀ» ¼Æ÷Æ®Çϰí ÀÖ´Â °æ¿ì, ÀÌ ÄÁÆ®·ÑÀº °Ë»ö ¿ä±¸¿Í ÇÔ²² ¼Û½ÅµÇ¾úÀ» °æ¿ì, °Ë»ö °á°ú¸¦ ƯÁ¤ÀÇ ¼Ó¼ºÀ¸·Î ¼ø¼ ºÙ¿© µ¹·ÁÁÖµµ·Ï(µíÀÌ) ¼¹ö¿¡ ¿ä±¸ÇÕ´Ï´Ù. ÀÌ ÄÁÆ®·ÑÀº ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÌ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï,SortControl Ŭ·¡½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ÀÌ Å¬·¡½º¸¦ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÕ´Ï´Ù.
SortControl Ŭ·¡½º´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.Control[] reqCtls = new Control[] {new SortControl("age")}; ectx.setRequestControls(reqCtls); NamingEnumeration enum = ectx.search(...);
public class SortControl implements Control { // User-friendly constructor public SortControl(String attrID) { // encode attrID }; // Methods used by service providers public String getID() { return SORT_OID; } public byte[] getEncodedValue() { return // encoded attrID } ... }
¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ ÀÀ´ä ÄÁÆ®·ÑÀ» ¼ö½ÅÇϸé(ÀÚ), ÀÌ ÇÁ·Î¹ÙÀÌ´õ´Â ControlFactory Ŭ·¡½º¸¦ »ç¿ëÇØ,Control ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϴ ƯÁ¤ÀÇ Å¬·¡½º¸¦ »ý¼ºÇÕ´Ï´Ù.
LDAP ¼¹ö´Â LDAP Á¶ÀÛ°ú ÇÔ²² ÀÀ´ä ÄÁÆ®·ÑÀ» ´ä½ÅÇÒ ¼ö ÀÖ¾î ¶Ç ¸®½ºÆ®³ª °Ë»ö Á¶À۵ ÀÇÇØ µ¹·ÁÁÖ¾îÁø ¿°Å °á°ú¿Í ÇÔ²² ´äÀåÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. LdapContext ´Â LDAP Á¶ÀÛ°ú ÇÔ²² ¼Û½ÅµÈ ÀÀ´ä ÄÁÆ®·ÑÀ» ÃëµæÇÏ´Â ¸Þ¼Òµå (getResponseControls())¸¦ Á¦°øÇØ,HasControls ´Â ¿°Å °á°ú¿¡ °ü·ÃÇÑ ÀÀ´ä ÄÁÆ®·ÑÀ» ÃëµæÇϴµ¥ »ç¿ëµË´Ï´Ù.
¿¹¸¦ µé¾î, º¯°æ ¿Ï·á¿¡ µû¶ó LDAP ¼¹ö°¡ ¡¸ID º¯°æ¡¹ÄÁÆ®·ÑÀ» ´äÀåÇÏ´Â °æ¿ì, ¼¹ö´Â ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÌ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô ChangeIDControl Ŭ·¡½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº °»½ÅÀ» ½Ç½ÃÇØ, °è¼ÓµÇ¾î ID º¯°æÀ» ÃëµæÇÏ·Á°í ÇÕ´Ï´Ù.
º¥´õ´Â ´ÙÀ½°ú °°Àº ChangeIDControl Ŭ·¡½º ¹× VendorXControlFactory Ŭ·¡½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. VendorXControlFactory ´Â ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ LDAP ¼¹ö·ÎºÎÅÍ ÀÀ´ä ÄÁÆ®·ÑÀ» ¼ö½ÅÇßÀ» ¶§¿¡ ±× ÇÁ·Î¹ÙÀÌ´õ°¡ »ç¿ëÇÕ´Ï´Ù.// Perform update Context ctx = ectx.createSubsubcontext("cn=newobj"); // Get response controls Control[] 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 technology web site¡¹¿¡¼´Â ´ÙÀ½ÀÇ ¹®¼¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ ÆÐŰÁö ´ÙÀ½ÀÇ ÆÐŰÁö | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ |
Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ ÀÖ¾î¼ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.