我正在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参数登录....
我该怎么做?
谢谢。答案 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]
通过添加此令牌并调整弹簧配置,您可以与jasper服务器进行通信。
其他方面,请参阅link。