2012-01-12 65 views
2

我正在尝试集成两个独立的Web应用程序 - 一个是现有的具有自己的安全范例的自定义Web应用程序,另一个是报告平台(JasperServer)。我希望能够使用Jasper的Web服务接口将报告功能集成到我们的应用程序中。我们的安全模型非常复杂,并且在家中种植,但我认为这是希望。Spring Custom SSO

我们设置了一个cookie,它是一个包含Web服务URI的加密字符串,作为身份验证源和一个存储在用户登录时创建的数据库中的令牌,并在他/她退出时被销毁。我想我可以利用它在Jasper中实现一种SSO,因为它使用Spring Security。

什么我想想我应该做的是实现预验证过滤器,检查我上面提到的cookie。然后它可以解密它,对提供的验证源进行Web服务调用,以验证令牌在数据库中处于活动状态。如果是,那么该标记可用于指向可作为UserDetails对象返回的用户和​​角色信息。

不幸的是,我知道足够危险,但还不够有效。我在正确的轨道上吗?这个解决方案听起来是否成立?如果是的话,哪里会是一个很好的起点,有没有类似的例子可以让我指点?我搜查了很多东西,发现没有什么东西符合法案。

在此先感谢任何及所有谁可以给​​我希望

+0

两台服务器共享相同的域名还是主机名? – sourcedelica 2012-01-13 21:57:02

+0

不一定。事实上,在很多情况下,他们不会这样,我想我应该回答不。 – 2012-01-17 21:26:10

回答

0

Cookies是绑在站点/子/路径和端口的一线希望。可以在域级别设置cookie,因此如果您有类似webapp.mydomain.com和jasper.mydomain.com的内容,则可以假设它们位于同一端口上。

不过是非常小心实现自己的SSO /身份验证框架。这需要很多思考。就目前而言,您提出的实施方案很容易受到:重播,中间人和XSRF攻击......可能还有其他漏洞,但这些只是想到的三个......对不起! :D