получение операции Restricted на сервере при получении AdministrationProcess из сеанса в IBM Domino

1

У меня есть требование добавить членов группы в IBM Domino Group с помощью java-кода. Я использую Notes.jar для подключения к IBM Domino v9.0, а мой java-код работает на другой машине, а затем на машине Domino. Из документации Domino я узнал, что для добавления члена в группу должен использоваться класс "AdministrationProcess". Но когда я пытаюсь создать объект "AdministrationProcess", вызывается session.createAdministrationProcess("IBMDominoServer"). Я получаю ошибку Ограниченная операция на сервере.

Мой тестовый код выглядит следующим образом

public class LotusDomino{
public static void main(String args[]) throws Exception{
    String[] argv = {"192.168.2.111","Administrator","<password>"};
    deleteUser(argv[0], argv[1], argv[2]);
}
private static void deleteUser(String host, String userName, String password) throws Exception{
    Session s = NotesFactory.createSession(host, userName, password);
    try{
        AdministrationProcess process = s.createAdministrationProcess("IBMDominoServer.xanadufinancials.com");
    }catch(NotesException e){
        System.err.println("exception --- "+e.id+":"+e.text+":"+e.internal); // this prints the following error : exception --- 4183:Restricted operation on a server:null
    }
}

Код показывает ту же ошибку, независимо от того, что я передаю в качестве имени сервера. Поэтому это не должно быть проблемой кода. Я немного поработал над этим и узнал, что администратор должен иметь доступ к редактору на admin4.nsf. Проверьте доступ к нему.

Пожалуйста, дайте мне знать, в чем проблема. Заранее спасибо.

Теги:
lotus-domino

1 ответ

2

Использование процесса администрирования - один из способов добавить пользователя в группу, и это самый безопасный способ, когда вы не знаете, как настроены службы каталогов на сервере Domino. Но в большинстве базовых конфигураций добавление пользователя в группу очень просто. Вы открываете базу данных names.nsf, открываете представление "Группы", находите документ для группы и добавляете имя в список, хранящийся в элементе "Участники". Единственный улов в том, что если список членов слишком длинный, вам, возможно, придется написать код, который способен разделить его на подгруппы (и/или код, чтобы обнаружить шаблон существующих подгрупп и добавить к ним вместо этого).

Что касается использования класса NotesAdministrationProcess, если мы можем доверять тому, что сообщение об ошибке означает, что это означает, значит, ваша проблема заключается в том, что идентификатор пользователя, который вы используете, не имеет разрешения на выполнение ограниченных операций на сервере. Вот ссылка на информацию о конфигурации сервера для разрешений агента. Если вы используете NCSO.jar (см. Мой вопрос выше), тогда создайте отдельную конфигурацию для пользователей, которым разрешено выполнять ограниченные операции над IIOP, но я не уверен, и мой сервер в данный момент недоступен, поэтому я не могу проверить,

  • 0
    Хорошо ... мой сервер вернулся, и я проверил. Поле «Запускать неограниченные методы и операции» в разделе «Программируемость» на вкладке «Безопасность» Документа сервера в Domino Directory охватывает все языки и интерфейсы, включая IIOP. (Не обращайте внимания на то, что на нем написано «Неограниченный», и вам нужно разрешение для «Restricted». Текст справки проясняет, что на самом деле это поле указывает, кто может запускать код без ограничений. То есть запускать операции с ограничениями. Они просто описывают его в обратном направлении в метке поля.)
  • 1
    Спасибо, Ричард, я смог заставить это работать, изменившись. Я не смог найти параметр, который вы упомянули, но изменение параметра «Подпишите или запустите неограниченные методы и операции» сделало чудо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню