Вот решение. Не стесняйтесь использовать его ;-)
Проблема
Проблема я столкнулся с был огромный один. В проекте, над которым я работал, нас спрашивали, можем ли мы изменить права доступа по умолчанию 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. Нажмите «Добавить пользователя» a. Дайте имя пользователя b. Дайте пароль 4. Нажмите «Добавить пользователя»
Теперь, когда пользователь создан, вы можете перейти к новой роли. Для этого выполните следующие действия:
- Нажмите на «Управление»
- Нажмите на кнопку «Роли»
- Нажмите на «Добавить роль»
- Заполните Role Name
- Нажмите на кнопку «Добавить Роль "
Запишите имя созданной роли, потому что это та роль, которую мы собираемся использовать для« взлома »XML для наших нужд.
Чтобы добавить пользователей к роли выполните следующие действия:
- Нажмите на роль, которую вы только что создали
- Нажмите на кнопку «Редактировать»
- Выберите пользователей, которые нуждаются в новой роли.
- Нажмите «Сохранить».
Следующее, что вам нужно сделать, это предоставить роль read + write + delete permissions в папке.
- правой кнопкой мыши на папке
- Нажмите на «Разрешения»
- Выберите Чтение + запись + удалить рядом с той ролью, которую необходимо этот доступ
Теперь вы все сделали и готовы чтобы «взломать» свой путь в 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 сервер ... => Запуск или остановка Услуги => Stop Service
- Для начала: Все программы => JasperReports сервер ... => Start Или Остановить Услуги => Начальная служба
Теперь войдите с созданным пользователем и щелкните правой кнопкой мыши по папке с правильными разрешениями. Теперь вы можете добавить все ресурсы, которые может добавить администратор.
Если вы хотите, вы можете немного поиграть с XML-файлом для дальнейшего изменения поведения. Например: у вас есть клиент, которому запрещено добавлять изображения сообщений яшмы. В этом случае вы можете изменить XML следующим образом.
Место проверяемое условие вокруг этого кода:
<option labelKey="resourceTypes.image" action="invokeCreate" actionArgs="[email protected]@img" className="up"/>
Чтобы выглядеть этот код:
<condition test=checkAuthenticationRoles” testArgs=”ROLE_ADMINISTRATOR”>
<option labelKey="resourceTypes.image" action="invokeCreate" actionArgs="[email protected]@img" className="up"/></condition>
Таким образом, только администратор может добавлять изображения в папку. Voila, вы все готовы пойти и поиграть с копией сервера JasperReports.
Удачи!
У вас есть Community Edition? –
Вы проверили разрешение для папки (вам нужно добавить ресурсы)? –
Да У меня есть Community Edition. Я действительно не понимаю, что вы имеете в виду: «Вы проверили разрешение на папку». Вы имеете в виду папку, которую вы создали в JasperServer или в папке WEB-INF на ОС? –