发生了错误。请联系您的系统管理员。 (6632)Jasper server 6.2

时间:2015-12-23 06:59:40

标签: jasper-reports jasperserver

我正在使用Jasper报告: - TIBCO Jaspersoft Studio-6.2.0.final            Jasper服务器: - JasperReports服务器社区版(v6.2.0)

我将报告书模板Jasper报告发布到Jasper Server。但是,当我从Jasper Server运行报告时,我收到了以下错误

  

错误消息   发生了错误。请联系您的系统管理员。   (6632)错误跟踪   com.jaspersoft.jasperserver.api.JSSecurityException:出错了   发生了。请联系您的系统管理员。 (6632)参数:   在   com.jaspersoft.jasperserver.api.security.validators.Validator.validateSQL(Validator.java:500)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuter.createDatasource(JRTimezoneJdbcQueryExecuter.java:167)   在   net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1129)   在   net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:696)   在   net.sf.jasperreports.engine.fill.JRFillDatasetRun.evaluate(JRFillDatasetRun.java:226)   在   net.sf.jasperreports.engine.fill.JRFillElementDataset.evaluateDatasetRun(JRFillElementDataset.java:238)   在   net.sf.jasperreports.engine.fill.JRFillCrosstab.evaluate(JRFillCrosstab.java:610)   在   net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:281)   在   net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:504)   在   net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2026)   在   net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:752)   在   net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:259)   在   net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:119)   在   net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:558)   在   net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:396)   在   net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:742)   在   net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:58)   在   net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:216)   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)   at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)   在java.lang.Thread.run(未知来源)

我已在security.validation.sql.on=false文件中更新了security-config.properties

但我仍然收到此错误。

如何解决此问题?

2 个答案:

答案 0 :(得分:3)

您可能在SQL查询中使用了一些特殊关键字(例如“with”子句)。 您可能需要编辑jasperserver-pro / WEB-INF / classes / esapi / validation.properties文件。 并编辑该行, Validator.ValidSQL =(是)^ \ S *(选择| ADD_NEW_CLAUSE_HERE)\ S + ^; + $

然后重启服务器。

证明您使用的查询有助于获得更全面的答案。

答案 1 :(得分:1)

出于安全原因(!)我个人会建议(使用它是非常不安全的,如下所述!)

  1. 将此设置为

    Validator.ValidSQL=.*
    

    甚至更好

    #/jasperserver/WEB-INF/classes/esapi/security-config.properties 
    security.validation.sql.on=false
    

    所以实际没有进行有效性检查。 为什么?因为之前的(标准正则表达式)非常弱(并且不成熟 - 例如阻止with ... select ...子句)检查并且可能表明SQL注入将在更高程度上被阻止< /强>

  2. A)如果我不关心我的环境中的安全性/ SQL注入,或者成本 - 价值因素效率低下(请非IT预算负责人在这里决定! ),我现在就这样离开

    B)如果我担心环境中的安全性/ SQL注入,我建议