Я загрузил свои отчеты на JasperServer, где я планирую отчеты и отправляю PDF-файлы в виде вложений по электронной почте пользователям, использующим API-интерфейс заданий. Все работает отлично, однако нам также нужно, чтобы PDF-файлы были зашифрованы. Я прочитал тему вики и смог зашифровать pdf.
Но мы хотим, чтобы пароли были динамическими и разными для каждого пользователя (например, какая-то комбинация их номеров телефонов и даты рождения). Пример, описанный в ссылке, указывает пароль как свойство отчета в файле jrxml.
<property name="net.sf.jasperreports.export.pdf.user.password" value="123456"/>
<property name="net.sf.jasperreports.export.pdf.owner.password" value="123456"/>
Пароль указывается в виде строки и одинаков для каждого pdf-файла, сгенерированного из этого jrxml.
Я пробовал что-то вроде этого
<property name="net.sf.jasperreports.export.pdf.user.password" value="{$F{dateOfBirth}}"/>
где $F{dateOfBirth} — это дата рождения пользователя, для которого выполняется запрос. Но вместо того, чтобы вводить значение поля, он просто считает его строкой и устанавливает пароль = "{$F{dateOfBirth}}"
Как мне смириться с этим? Есть ли способ установить разные пароли для каждого пользователя?
ПРИМЕЧАНИЕ. Источник данных настроен для отчета на jasperserver. При вызове API выполнения задания Jasperserver выполняет запрос, заполняет отчет, экспортирует его в формате pdf и отправляет пользователю по электронной почте.
property
. Единственный шанс использовать выражение — использовать элементpropertyExpression
, но его нельзя использовать в разделе jasperReport. Вы можете использовать Java API - person Alex K   schedule 26.11.2016