【问题标题】:jasper server pdf without authenticationjasper 服务器 pdf 无需身份验证
【发布时间】:2018-06-19 06:32:26
【问题描述】:

我正在 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 参数登录....

我该怎么做?

谢谢。

【问题讨论】:

  • 你的意思是它没有工作,你能更具体一点吗?您是否在浏览器中收到(错误)消息? CSRF 保护并不意味着您不能在查询字符串中使用参数。
  • 无法使用 GET 访问 pdf url。但在谷歌搜索后,我找到了解决方案。感谢您的回复
  • 你能用解决方案回答你自己的问题并与大家分享吗? ; )
  • @Kamal 感谢您的回复,我已经回答了我的问题并添加了链接

标签: jasperserver


【解决方案1】:

有一种方法可以通过访问 GET 和令牌参数来与 Jasper Server 进行交互。

令牌是与 Jasper Server 通信的关键点。 它被称为基于令牌的身份验证。为此,您首先为基于令牌的身份验证配置 spring 上下文配置。

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

您应该丢弃文件名的“sample-”部分,并将其移至 \apache-tomcat\webapps\jasperserver\WEB-INF.

然后重启服务器,就可以通过下面的网址访问了。

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

url 有一个查询字符串,名为 principal 参数,它是一个身份验证令牌。应用服务器可以给用户一个认证token,当用户访问包含jasper server report pdf iframe的页面时,应用服务器应该将token传递给服务器,这样用户就可以查看嵌入在应用服务器中的report。

token参数格式如下。

pp=u=用户名|r=组名[,组名2][, ...]|o=organization_1[,organization2, ][, ...]|exp=20180117000000|pa1=[arrtribute1]|pa2= [属性2]

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

通过添加这个token,调整spring配置,就可以和jasper服务器通信了。

其他的请参考link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多