JasperRunManager не может получить доступ к содержимому с тем же ограничением безопасности - PullRequest
1 голос
/ 18 марта 2019

У меня есть устаревшее приложение, которое использует файлы servlet + jrxml для представления отчетов пользователям;эти отчеты должны получать доступ к некоторым изображениям через сервлет

. Сервлет изображения отображается как / images / и в файле web.xml защищен следующим образом:

<security-constraint>
        <web-resource-collection>
            <web-resource-name>images</web-resource-name>
            <url-pattern>/images/*</url-pattern>
        </web-resource-collection>
</security-constraint>

В отчетах используется сервлет дляполучить некоторые данные, а затем использовать JasperRunManager для создания PDF-файла на основе некоторого файла JRXML;код выглядит примерно так:

inputStream = this.getClass().getResourceAsStream(jrxmlFileName);
connection = getDatabaseConnection();
parameters.put("IS_IGNORE_PAGINATION", false);
bytes = JasperRunManager.runReportToPdf(inputStream, parameters, connection);
servletOutputStream.write(bytes, 0, bytes.length);

Сервлет отчета отображается аналогично сервлету изображений

<security-constraint>
        <web-resource-collection>
            <web-resource-name>report</web-resource-name>
            <url-pattern>/report</url-pattern>
        </web-resource-collection>
</security-constraint>

Но когда я запускаю сервлет отчета, он не может получить доступ к изображениям в /сервлет изображений;я знаю, что это какая-то проблема безопасности, потому что если я отключу ограничение безопасности для сервлета изображений, то отчет будет работать нормально

есть ли способ это исправить?

...