1

在网上搜索后,这是我的“最后手段”;-)

我用映射到 ROLE_USER 的用户设置了 JaserServer。我遇到的问题是这些用户可能会做各种各样的事情。

我的设置:安装了JasperServer 4.1的 Virtualbox Windows XP SP3 。

如果您以管理员用户身份登录并右键单击文件夹并选择添加资源,他们需要能够执行您可以执行的所有操作。

我找不到可以更改某些角色的默认文件夹权限的页面。我已经查看了WEB-INF文件夹,但无法弄清楚要更改什么以及要留下什么......

欢迎任何帮助!

谢谢大家!

4

2 回答 2

3

您将需要编辑文件 WEB-INF/actionModel-search.xml。每个菜单项都由一个<option />标签表示,它们被包装在<condition>标签中以确定您是否可以看到它们。如果条件标签的 test 属性是 checkAuthenticationRoles,那么 testArgs 属性的值将决定哪些角色可以看到这些选项。如果您想要多个角色,请用逗号分隔它们。

于 2012-04-24T20:24:52.183 回答
3

这是解决方案。随意使用它 ;-)

问题

我面临的问题是一个巨大的问题。在我正在处理的一个项目中,我们被问到是否可以将 JasperServer 默认角色权限更改到可以告诉我们 JasperServer 上的某些客户可以添加管理员可以添加的所有资源的程度。在无休止地搜索网络之后,我们正要放弃,但突然我们得到了一个提示。这个提示是成功的。查看 Stackoverflow 上的上述帖子。

解决方案

解决方案是需要更改/更改 JasperServer XML 文件。我已经在搜索所有 XML 文件的过程中,但是找到正确的文件被证明是一个挑战。您需要更改的 XML 文件位于 JasperServer 安装目录的 WEB-INF 文件夹中。在我的机器上是这个:

C:\Program Files\jasperreports-server-cp-4.5.0-2\apache-tomcat\webapps\jasperserver\WEB-INF

你需要的文件是这个:actionModel-search.xml

警告:不要忘记先备份原始文件。如果事情进展顺利,您不想重新开始!

说明

首先,安装 JasperServer。我仅在 JasperServer 的社区版本上对此进行了测试。所以我想如果这适用于社区版本,它也适用于付费支持的版本。安装后转到您的 JasperReports 主页并使用以下凭据登录:

URL: http://localhost:8080/jasperserver
User: jasperadmin
Password: jasperadmin

请注意,这只是虚拟机上的测试设置。如果您打算在生产服务器上执行此操作,请出于安全原因更改 jasperadmin 用户的密码。

登录后立即创建一个新用户。1. 点击“管理” 2. 点击“用户” 3. 点击“添加用户” 给一个用户名 b. 输入密码 4. 点击“添加用户”</p>

现在用户已创建,您可以继续创建新角色。为此,请按照下列步骤操作:

  1. 点击“管理”</li>
  2. 点击“角色”</li>
  3. 点击“添加角色”</li>
  4. 填写角色名称
  5. 点击“添加角色”</li>

记下新创建的角色名称,因为这是我们将用来“破解”XML 以满足我们需要的角色。

要将用户添加到角色,请执行以下操作:

  1. 点击刚刚创建的角色
  2. 点击“编辑”</li>
  3. 选择需要新角色的用户。
  4. 点击“保存”。

您需要做的下一件事是授予角色对该文件夹的读+写+删除权限。

  1. 右键单击一个文件夹
  2. 点击“权限”</li>
  3. 选择需要此访问权限的角色旁边的读取 + 写入 + 删除

现在您已准备就绪,可以“破解”XML 文件了。

打开 actionModel-search.xml 文件。 不要忘记先复制文件!

在 xml 文件的开头查找如下所示的代码行。

 <condition test="checkAuthenticationRoles" testArgs="ROLE_USER,ROLE_ADMINISTRATOR">

这是您需要更改的第一行。将您的角色添加到 testArgs 部分。确保所有角色都用逗号分隔。

 <condition test="checkAuthenticationRoles"> testArgs="ROLE_USER,ROLE_ADMINISTRATOR**,USER_RESOURCES**">

在下一个条件行进行相同的更改。保存文件。要使更改生效,您需要重新启动 JasperServer。在 Windows 系统上,您可以访问

  • 停止:所有程序 => JasperReports 服务器 ... => 启动或停止服务 => 停止服务
  • 启动:所有程序 => JasperReports 服务器 ... => 启动或停止服务 => 启动服务

现在使用您创建的用户登录并右键单击具有正确权限的文件夹。现在您可以添加管理员可以添加的所有资源。

如果您愿意,您可以使用 XML 文件来进一步改变行为。例如:您有一个禁止添加 jasper 报告的图像的客户端。在这种情况下,您可以更改 XML,如下所示。

围绕此代码进行条件测试:

<option labelKey="resourceTypes.image" action="invokeCreate" actionArgs="FileResource@@img" className="up"/>

看起来像这样的代码:

<condition test=checkAuthenticationRoles” testArgs=”ROLE_ADMINISTRATOR”&gt;
<option labelKey="resourceTypes.image" action="invokeCreate" actionArgs="FileResource@@img" className="up"/></condition>

这样,只有管理员才能将图像添加到文件夹中。瞧,您已经准备好开始使用您的 JasperReports Server 副本了。

玩得开心!

于 2012-04-26T13:10:05.693 回答