jasper server pdf无需身份验证

时间:2018-01-10 06:27:23

标签: jasperserver

我正在jasper工作室学习报告。

现在我可以知道如何将我的报告上传到jasper服务器(localhost:8080 / jasperserverver),

我也可以在登录后在pdf查看器中查看。

现在我希望用户在没有身份验证的情况下查看我的pdf报告,但我不能。

谷歌搜索后,我知道了网址

http://<your jasper server>:<port>/<report path>?<report-params>&j_username=jasperadmin&j_password=jasperadmin

因为我的凭证是jasperadmin / jasperadmin, 我相信它会起作用,但事实并非如此。

我找到了localhost:8080 / jasperserver使用csrf保护, 如果确实如此,则无法使用GET参数登录....

我该怎么做?

谢谢。

1 个答案:

答案 0 :(得分:0)

通过使用令牌参数访问GET,可以与Jasper Server进行交互。

令牌是与Jasper Server通信的关键点。 它被称为基于令牌的身份验证。要完成此工作,首先要为基于令牌的身份验证配置spring context配置。

您可以在\ samples \ externalAuth-sample-config \ sample-applicationContext-externalAuth-preAuth.xml中找到配置文件。

你应该丢弃部分&#34;样本 - &#34;的文件名,并将其移动到 \ Apache的Tomcat的\ web应用\的JasperServer \ WEB-INF。

然后重新启动服务器,然后您可以使用以下网址进行访问。

http://localhost:8080/jasperserver?pp=u%3DSteve%7Cr%3DExt_User%7Co%3Dorganization_1%7Cpa1%3DUSA%7Cpa2%3D1

url有一个查询字符串,名为principal参数,是一个身份验证令牌。应用程序服务器可以为用户提供身份验证令牌,当用户访问包含jasper服务器的页面报告pdf iframe时,应用程序服务器应将令牌传递给服务器,因此用户可以查看应用程序服务器中嵌入的报告。

令牌参数格式如下所示。

pp = u =用户名| r = groupname [,groupname2] [,...] | o = organization_1 [,organization2,] [,...] | exp = 20180117000000 | pa1 = [arrtribute1] | pa2 = [attribute2]

  • pp:pp表示Principal Parameter,它是固定字符串,表示此参数是用于向jasper服务器进行身份验证的令牌。
  • u:表示用户名,而不是在jasper服务器上注册的用户名。它可以是任何。我不太了解这个参数,所以在我的情况下,我为我的应用服务器注册了一个用户主体。
  • r:表示组名。同样,我不知道何时以及为何使用它。
  • o:组织名称。在Jasper Studio中,有商业版和社区版(非商业版)。在商业版本中,可能有两个以上的不同组织,但在社区版中,始终只有一个名为organization_1。此参数用于划分使用此报表服务器的不同组。
  • exp:exp表示过期时间。它用于防止Web缓存或其他一些恶意用户再次使用。格式取决于配置文件(如上所述:sample-applicationContext-externalAuth-preAuth.xml)。
  • pa1,pa2:分别表示attribute1和attribute2。

通过添加此令牌并调整弹簧配置,您可以与jasper服务器进行通信。

其他方面,请参阅link

相关问题