|
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 Ŭ·¡½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ÀÌ Å¬·¡½º¸¦ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÕ´Ï´Ù.
Control[] reqCtls = new Control[] {new SortControl("age")};
ectx.setRequestControls(reqCtls);
NamingEnumeration enum = ectx.search(...);
SortControl Ŭ·¡½º´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
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 º¯°æÀ» ÃëµæÇÏ·Á°í ÇÕ´Ï´Ù.
// 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());
}
}
}
º¥´õ´Â ´ÙÀ½°ú °°Àº ChangeIDControl Ŭ·¡½º ¹× VendorXControlFactory Ŭ·¡½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. VendorXControlFactory ´Â ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ LDAP ¼¹ö·ÎºÎÅÍ ÀÀ´ä ÄÁÆ®·ÑÀ» ¼ö½ÅÇßÀ» ¶§¿¡ ±× ÇÁ·Î¹ÙÀÌ´õ°¡ »ç¿ëÇÕ´Ï´Ù.
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.