Разрешения роли JasperServer по умолчанию

После поиска в сети это мое «последнее средство» ;-)

У меня есть JaserServer, настроенный с пользователями, которые сопоставлены с ROLE_USER. У меня проблема в том, что эти пользователи могут делать все что угодно.

Моя установка: Virtualbox Windows XP SP3 с установленным на нем JasperServer 4.1.

Они должны иметь возможность делать все то же, что и вы, если вы вошли в систему как пользователь-администратор, щелкните правой кнопкой мыши папку и выберите «Добавить ресурс».

Я не могу найти страницу, на которой можно изменить права доступа к папкам по умолчанию для определенных ролей. Я уже смотрел папку WEB-INF, но не мог понять, что изменить, а что оставить...

Любая помощь приветствуется!

Спасибо всем!


person Bram Pintelon    schedule 05.04.2012    source источник
comment
У вас есть Community Edition?   -  person Alex K    schedule 05.04.2012
comment
Вы проверили разрешение для папки (нужно добавить ресурсы)?   -  person Alex K    schedule 05.04.2012
comment
Да, у меня Community Edition. Я действительно не понимаю, что вы имеете в виду под «Проверили ли вы разрешение для папки». Вы имеете в виду папку, которую вы создали в JasperServer, или папку WEB-INF в ОС?   -  person Bram Pintelon    schedule 06.04.2012
comment
Нет, я говорю о папке в репозитории JR Server (можно увидеть, например, в узле Reports)   -  person Alex K    schedule 06.04.2012
comment
Да, для папки установлены разрешения на чтение+запись+удаление для ROLE_USER. У меня есть следующий снимок экрана: ССЫЛКА Мне нужно следующее: ССЫЛКА   -  person Bram Pintelon    schedule 06.04.2012
comment
Да, извините за путаницу. Конец недели ;-)   -  person Bram Pintelon    schedule 06.04.2012
comment
давайте продолжим обсуждение в чате   -  person Alex K    schedule 06.04.2012


Ответы (2)


Вам нужно будет отредактировать файл WEB-INF/actionModel-search.xml. Каждый пункт меню представлен тегом <option />, и они заключены в теги <condition>, чтобы определить, видите ли вы их или нет. Если тестовый атрибут тега условия — checkAuthenticationRoles, то значение атрибута testArgs будет определять, какие роли могут видеть эти параметры. Если вам нужно несколько ролей, разделите их запятыми.

person Logan5    schedule 24.04.2012

Вот решение. Не стесняйтесь использовать его ;-)

Проблема

Проблема, с которой я столкнулся, была огромной. В проекте, над которым я работал, нас спросили, можем ли мы изменить разрешения ролей JasperServer по умолчанию до такой степени, чтобы мы могли сказать, что определенные клиенты на нашем JasperServer могут добавлять все ресурсы, которые может администратор. После бесконечных поисков в сети мы были на грани того, чтобы сдаться, но вдруг ни с того ни с сего нам дали подсказку. Этот намек оказался удачным. Проверьте сообщение выше на Stackoverflow.

Решение

Решение состоит в том, что XML-файлы JasperServer необходимо изменить/изменить. Я уже был в процессе изучения всех XML-файлов, но найти нужный оказалось непросто. Файл XML, который необходимо изменить, находится в папке WEB-INF каталога установки JasperServer. На моей машине это было так:

C:\Program Files\jasperreports-server-cp-4.5.0-2\apache-tomcat\webapps\jasperserver\WEB-INF

Вам нужен вот этот файл: actionModel-search.xml

ВНИМАНИЕ: не забудьте сначала сделать резервную копию исходного файла. Вы же не хотите начинать все сначала, если что-то пойдет не так!

Объяснение

Прежде всего, установите JasperServer. Я тестировал это только на версии JasperServer для сообщества. Поэтому я предполагаю, что если это работает в версии сообщества, это также будет работать и в поддерживаемой платной версии. После установки перейдите на домашнюю страницу JasperReports и войдите со следующими учетными данными:

URL: http://localhost:8080/jasperserver
User: jasperadmin
Password: jasperadmin

Обратите внимание, что это только тестовая установка на виртуальной машине. Если вы собираетесь сделать это на рабочем сервере, из соображений безопасности измените пароль пользователя jasperadmin.

Как только вы вошли в систему, перейдите и создайте нового пользователя. 1. Нажмите «Управление». 2. Нажмите «Пользователи». 3. Нажмите «Добавить пользователя». Дайте имя пользователя b. Введите пароль 4. Нажмите «Добавить пользователя».

Теперь, когда пользователь создан, вы можете приступить к созданию новой роли. Для этого выполните следующие действия:

  1. Нажмите «Управление»
  2. Нажмите «Роли»
  3. Нажмите «Добавить роль».
  4. Заполните имя роли
  5. Нажмите «Добавить роль».

Запишите имя только что созданной роли, потому что это роль, которую мы собираемся использовать, чтобы «взломать» XML в соответствии с нашими потребностями.

Чтобы добавить пользователей в роль, выполните следующие действия:

  1. Нажмите на роль, которую вы только что создали.
  2. Нажмите «Изменить»
  3. Выберите пользователей, которым нужна новая роль.
  4. Нажмите «Сохранить».

Следующее, что вам нужно сделать, это дать роли права на чтение + запись + удаление в папке.

  1. Щелкните правой кнопкой мыши папку
  2. Нажмите «Разрешения»
  3. Выберите чтение + запись + удаление рядом с ролью, которой требуется этот доступ.

Теперь все готово и вы готовы «взломать» свой XML-файл.

Откройте файл actionModel-search.xml. Не забудьте сначала сделать копию файла!

В начале файла xml найдите строку кода, похожую на приведенную ниже.

 <condition test="checkAuthenticationRoles" testArgs="ROLE_USER,ROLE_ADMINISTRATOR">

Это первая строка, которую вам нужно изменить. Добавьте свою роль в раздел testArgs. Убедитесь, что все роли разделены запятой.

 <condition test="checkAuthenticationRoles"> testArgs="ROLE_USER,ROLE_ADMINISTRATOR**,USER_RESOURCES**">

В следующей строке условия внесите те же изменения. Сохраните файл. Чтобы изменения стали актуальными, вам необходимо перезапустить JasperServer. В системах Windows вы можете перейти к

  • Чтобы остановить: Все программы => Сервер JasperReports … => Запустить или остановить службы => Остановить службу
  • Для запуска: Все программы => Сервер JasperReports … => Запустить или остановить службы => Запустить службу

Теперь войдите в систему с пользователем, которого вы создали, и щелкните правой кнопкой мыши папку с нужными разрешениями. Теперь вы можете добавить все ресурсы, которые может добавить администратор.

Если вы хотите, вы можете немного поиграть с файлом XML, чтобы еще больше изменить поведение. Например: у вас есть клиент, которому запрещено добавлять изображения, о которых сообщает jasper. В этом случае вы можете изменить XML следующим образом.

Поместите проверку условия вокруг этого кода:

<option labelKey="resourceTypes.image" action="invokeCreate" actionArgs="FileResource@@img" className="up"/>

Чтобы выглядеть как этот код:

<condition test=checkAuthenticationRoles” testArgs=”ROLE_ADMINISTRATOR”>
<option labelKey="resourceTypes.image" action="invokeCreate" actionArgs="FileResource@@img" className="up"/></condition>

Таким образом, только администратор может добавлять изображения в папку. Вуаля, все готово для экспериментов с вашей копией JasperReports Server.

Развлекайтесь!

person Bram Pintelon    schedule 26.04.2012