java - JasperRunManager 无法访问同一安全约束中的内容
问题描述
我有一个遗留应用程序,它使用 servlet + jrxml 文件向用户呈现报告;此报告必须通过 servlet 访问一些图像
图像 servlet 映射为 /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>
报告使用 servlet 获取一些数据,然后使用 JasperRunManager 基于一些 jrxml 文件创建 pdf 文件;代码是这样的
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);
报告 servlet 的映射类似于图像 servlet
<security-constraint>
<web-resource-collection>
<web-resource-name>report</web-resource-name>
<url-pattern>/report</url-pattern>
</web-resource-collection>
</security-constraint>
但是当我运行报告 servlet 时,它无法访问 /images servlet 中的图像;我知道这是一些安全问题,因为如果我禁用图像 servlet 的安全约束,那么报告运行良好
有没有什么办法解决这一问题 ?
解决方案
推荐阅读
- sql - 如何在 Oracle 中使用合并命令
- javascript - ava中的t.context范围
- ios - 如何在一定范围内向上拖动父 UIView 中的 UIContainer 视图?
- r - 改变列表中的每个元素以将其元素编号附加为新列
- java - 如何按升序对 ArrayList 的元素进行排序?- 爪哇
- database - 这两个kdb函数的目的是什么?
- asp.net - 如何在没有实体框架的 asp.net mvc 中创建分页
- javascript - 如何“就地”旋转和倾斜 SVG 矩形?
- sql-server - 是否有规范的示例 SqlServer 数据库?
- javascript - Onclick 按钮创建组件