Как получить идентификатор электронной почты в [email protected] вместо CN= example/OU= Server/O=company в заметках лотоса в java

Привет, когда я получаю имя пользователя от дизайнера домино указанным ниже способом

    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();
    String userName=session.getUsername(); 
    system.out.println("UserName="+uesrName);

я получаю имя пользователя в формате "CN=example/OU=Server/O=company", но я хочу, чтобы оно было в обычном формате, например, [email protected]. Может ли кто-нибудь рассказать, как получить его на Java. Есть ли любой другой подход для получения имени пользователя в ожидаемом формате. Пожалуйста, помогите. Было бы здорово, если бы были предоставлены некоторые ссылки.


person Phoenix    schedule 14.03.2014    source источник


Ответы (1)


[email protected] — это НЕ имя пользователя, а адрес электронной почты (который можно использовать в поле имени пользователя для входа в веб-сервисы / путешественник / ldap / и т. д., если сервер настроен соответствующим образом).

Существуют разные способы получить адрес электронной почты для заданного имени пользователя, самым простым из которых может быть использование класса Directory-Class и его метода «lookupNames».

Вот пример, взятый из справки Designer:

  Session session = getSession();
  AgentContext agentContext = session.getAgentContext();
  Directory dir = session.getDirectory("NameOfYourServer");
  String userName=session.getUsername(); 
  DirEntryCollection direc = dir.lookupNames("($Users)",userName,"email");
  DirEntry dirent = direc.getFirstEntry()
  while (dirent != null) {
    String name = dirent.getItemValue("InternetAddress");
    System.out.println(InternetAddress);
    dirent = direc.getNextEntry(); }

Справку Designer можно найти во многих местах (устанавливается локально, если Designer установлен) или, например, на веб-сайте. здесь

person Torsten Link    schedule 14.03.2014
comment
: я пробовал так, как вы сказали. $ Представление пользователей, похоже, относится к почтовым контактам. Поэтому, когда я напечатал значения InternetAddress, я получил значение, которое я сохранил при создании контакта. Но мне нужен сопоставленный идентификатор электронной почты для конкретное имя пользователя. Можете ли вы сказать, как получить идентификатор электронной почты для соответствующего имени пользователя. - person Phoenix; 14.03.2014
comment
Передайте имя вашего сервера Domino в метод getDirectory вместо null. - person Richard Schwartz; 14.03.2014
comment
Если код выполняется на локальной рабочей станции, то каталог, который вы получаете, является вашим личным name.nsf. Только если код работает на сервере, вы получаете каталог сервера. ($ Users) содержит имена пользователей/почтовые адреса во всех вариантах... Я отредактировал код, чтобы использовать адресную книгу сервера. Спасибо, Ричард. - person Torsten Link; 14.03.2014