Spec-Zone .ru
спецификации, руководства, описания, API
|
Можно использовать JNDI, чтобы выполнить операции именования, включая операции чтения и операции для того, чтобы обновить пространство имен. Следующие операции описываются в этом уроке:
Прежде, чем выполнить любую работу на именовании или службе каталогов, Вы должны получить начальный контекст - начальная точка в пространство имен. Это - то, потому что все методы при именовании и службах каталогов выполняются относительно некоторого контекста. Чтобы получить начальный контекст, следует следовать за этими шагами.
Можно определить поставщика услуг, чтобы использовать для начального контекста, создавая ряд свойств среды (Hashtable) и добавляя имя поставщика услуг class к этому. Свойства среды описываются подробно в
Если бы Вы используете поставщика услуг LDAP от Sun Microsystems, то Ваш код был бы похож на следующий.
Hashtable<String, Object> env = new Hashtable<String, Object>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
Чтобы определить поставщика услуг файловой системы от Sun Microsystems, Вы записали бы код, который похож на следующий.
Hashtable<String, Object> env = new Hashtable>String, Object>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
Можно также использовать системные свойства, чтобы определить поставщика услуг, чтобы использовать. Проверьте
Клиентам различных каталогов, возможно, понадобилась бы различная информация для того, чтобы связаться с каталогом. Например, Вы, возможно, должны были бы определить, на которой машине работает сервер и какая информация необходима, чтобы идентифицировать пользователя для каталога. Такую информацию передают к поставщику услуг через свойства среды. JNDI определяет некоторые универсальные свойства среды, которые могут использовать поставщики услуг. Ваша документация поставщика услуг сообщит подробности относительно информации, запрошенной для этих свойств.
Провайдер LDAP требует, чтобы программа определила расположение сервера LDAP, так же как пользовательскую информацию об идентификационных данных. Чтобы предоставить эту информацию, Вы записали бы код, который смотрит следующим образом.
env.put(Context.PROVIDER_URL, "ldap://ldap.wiz.com:389"); env.put(Context.SECURITY_PRINCIPAL, "joeuser"); env.put(Context.SECURITY_CREDENTIALS, "joepassword");
Это учебное руководство использует поставщика услуг LDAP от Sun Microsystems. Примеры предполагают, что сервер был установлен на локальной машине в порту 389 с корневым отличительным именем "o=JNDITutorial" и что никакая аутентификация не требуется для того, чтобы обновить каталог. Они включают следующий код для того, чтобы установить среду.
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
Если Вы будете использовать каталог, который устанавливается по-другому, то Вы должны будете установить эти свойства среды соответственно. Вы должны будете заменить "localhost" именем той машины. Можно выполнить эти примеры против любых
Вы теперь готовы создать начальный контекст. Чтобы сделать это, Вы передаете конструктору InitialContext свойства среды, которые Вы создали ранее:
Context ctx = new InitialContext(env);
Теперь, когда у Вас есть ссылка на объект
Чтобы выполнить операции каталога, Вы должны использовать
DirContext ctx = new InitialDirContext(env);
Этот оператор возвращает ссылку на объект