首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多web应用安全揭秘

多web应用安全揭秘
EN

Stack Overflow用户
提问于 2012-04-24 02:30:43
回答 3查看 1K关注 0票数 2

我在一个jboss as7实例上部署了两个web应用程序。其中一个应用是基于spring/maven的,并使用spring security进行身份验证。另一个应用程序是birt web应用程序,不需要直接登录身份验证。这两个应用程序由单个菜单链接连接,仅当登录的用户拥有管理角色时才显示该菜单链接。因此,如果用户是经理,spring应用程序就是主应用程序,它提供了一个指向birt web应用程序的链接。我的问题是,spring应用程序是安全的(不需要直接访问url,用户需要登录等),但是如果有人知道应用程序的url,则无需登录就可以访问birt应用程序。我不想有两个单独的登录页面。我希望spring应用程序身份验证也能确定对birt应用程序的访问权限,但我不清楚如何做到这一点。我向我的birt应用程序的web.xml文件和jboss-web.xml文件添加了一个安全约束,以便为该应用程序建立安全域。无论安全约束是否存在,安全约束都没有区别,但是安全域确实限制通过url访问birt应用程序。那么下一步是什么呢?如何从spring应用程序获取身份验证(jsessionid?)并使用它来允许用户访问包含birt应用程序的安全域?

这两个应用都在同一个域名上...例如"domain/springApp or domain/birtApp“,如果有人想知道的话。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-26 19:06:12

这里也有同样的问题,因为birt.war完全是一个独立的webapp应用程序。它有自己的会话,所以任何人都可以通过url知道你的birt.war名称和报告名称,他们不仅可以在没有身份验证的情况下运行报告,还可以下载你的报告,这也是一个安全问题(这里的下载报告指的是.rptdesign文件,他们可以在其中看到你的查询)。

可能的解决方案是:-

1>将BIRT报表引擎3.7集成到您的use应用程序中,并使用servlet生成报表html页面,然后将其显示在您的应用程序中。在这方面,缺点是它会为你运行的每个报表创建html文件,不会让web查看器使用ajax功能和导出功能,如excel,pdf等。

2>这对我不起作用,但你可以试一下。将BIRT 3.7 web查看器集成到您的webapp中。我这样做了&能够在我的web应用程序中显示web查看器,但此链接也有效: report=report1.rptdesign">http://localhost:7110/myapp/frameset?_report=report1.rptdesign

我认为它会将这个链接重定向到我的webapp登录页面,就像它对我的webapp中的任何其他页面所做的那样,但我得到了一个很大的不。原因是单独的会话。

结论是从birt中提取web查看器并将其修改为与my webapp连接,这就像再次创建birt一样。

哦!!这里是BIRT3.7集成的链接:http://wiki.eclipse.org/Birt_3.7_Migration_Guide

票数 1
EN

Stack Overflow用户

发布于 2012-04-24 02:39:31

一种选择是通过spring安全来保护birt web应用程序(因此在birt应用程序中需要另一个spring安全配置)。birt应用程序中的spring安全过滤器将检查来自传入会话的UserDetails对象,以确定用户是否有权访问birt web应用程序。

Spring security -> app1 -> spring security -> birt应用程序

这是一个关于堆栈溢出答案的相当大的讨论:)

票数 0
EN

Stack Overflow用户

发布于 2012-04-24 06:13:51

看一看Choose your jboss sso和tomcat阀门的使用。

这可能会有所帮助。

问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10286184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档