Проблемы с xPage NotesContext getDatabase ACL

1

Версия Domino: 9.0.1

Случай использования
У меня есть основная база данных (DB0.nsf), на которой у пользователя есть право доступа читателя и N баз данных, на которых у текущего пользователя, зарегистрированного в системе, есть разные уровни доступа (пример DB1 - пользователь по умолчанию - читатель, DB2 - Пользователь без доступа, DB3 - группа пользователей - автор)

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

Этот взгляд действует странно, т.е. иногда он работает так, как ожидалось, и отображается вся база данных, на которой пользователь имеет минимальный доступ читателя, и иногда он не отображает все базы данных (в моем примере пользователь должен видеть DB1 и DB3, но иногда он видит только один DB3, он делает не видеть базу данных, которая имеет доступ по умолчанию в ACL, установленном в Reader)

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

управляемая область сеанса bean

Фрагмент моего кода

String path=paths.get(0).replace("\\","\\\\"); String srv=srvss.get(0); dbSearch=NotesContext.getCurrent().getCurrentSession().getDatabase(srv,path,false);

Проблема
В записи db1.nsf.ACL Доступ по умолчанию устанавливается для чтения. Когда тот же пользователь вошел в систему, у меня разные результаты кода выше. Пользователь просто обновляет страницу постоянно, и иногда исключение создается в строке getDatabase.
NotesException: пользователь не может открыть базу данных TEST\\test\\db1.nsf в lotus.domino.local.Session.NgetDatabase (собственный метод) в lotus.domino.local.Session.getDatabase (неизвестный источник)

Дополнительная отладка
Я добавил несколько строк для отладки - и когда выбрано исключение, я получаю такую же базу данных, что и подпись подписчика и уровень доступа к печати для каждой записи ACL в этой базе данных. в моем примере я открываю DB1.nsf как sessionAsSigner, а в консоли я вижу, что уровень ACL по умолчанию для DB1.nsf - это Reader.

Мы ценим любые предложения.

  • 1
    Что произойдет, если вы будете использовать глобальную группу (например, «allUsers») или всех членов домена (как в * / yourDomain, если ваши пользователи зарегистрированы как CN = имя пользователя / O = ваш домен) вместо ссылки на DEFAULT? Скорее всего, это ДОЛЖНО работать по-своему, но за все годы разработки Domino я сделал так, что всегда устанавливал для DEFAULT НЕТ ДОСТУПА и вместо этого использовал определенные группы ...
  • 0
    Когда я использую глобальную группу, она работает нормально. Но я не могу понять, почему он не работает с DEFAULT?
Показать ещё 3 комментария
Теги:
session
xpages
lotus-domino
managed-bean

1 ответ

0

Как я писал в своем последнем комментарии, я мог только догадываться, почему DEFAULT иногда не работает. В качестве обходного пути вы можете использовать глобальные группы (мои личные предпочтения) или записи заполнителя, такие как "*/yourDomain",

Использование групп (в сочетании с роли ACL) также имеет много преимуществ при сохранении прав доступа к вашим базам данных. Это просто способ защиты Notes

Ещё вопросы

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