2012-08-17 80 views
1

我们启用了adhoc缓存,但我们正在使用自定义查询执行器来检索数据。对于jasperserver来说,它看起来像是使用一个数据源,而之前它可能是一个不同的数据源。将租户ID和用户ID添加到ad hoc缓存

我们为jasperserver(4.7)0设置了多租户设置。

在这我们有几个adhoc视图,这对每个租户和用户都是一样的。我们有一个自定义的查询执行器,以确保报表运行在正确的数据库等。

但是,当我们打开adhoc缓存时,它会缓存某个adhoc视图的结果。为了防止其他用户看到错误的数据(来自缓存),我们希望将tenantId和UserId添加到adhoc缓存键,或者可以从自定义查询执行器中插入该参数。

有谁知道这是否可能?

问候, 彼得

回答

0

一个做的方式是,是创建自己的DefaultCacheKeyInterceptor的版本,并添加一个用户对象(即使是在报告中没有指定)。

然后编辑applicationContext-datarator.xml,并将keyInterceptor bean定义的类条目更改为您自己的类。