Spring Custom SSO

时间:2012-01-12 22:53:46

标签: spring jasper-reports single-sign-on jasperserver

我正在尝试集成两个单独的Web应用程序 - 一个是现有的自定义Web应用程序,它有自己的安全范例,另一个是报告平台(JasperServer)。我希望能够使用Jasper的Web服务接口将报告功能集成到我们的应用程序中。我们的安全模型很复杂,并且是本土的,但我认为有希望。

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

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

不幸的是,我知道这很危险但不足以有效。我是在正确的轨道上吗?这个解决方案听起来有效吗?如果是这样,哪里是一个好的开始,有什么类似的例子可以指向我吗?我搜索了很多,发现没有什么比这更合适了。

提前感谢所有能给我一线希望的人

1 个答案:

答案 0 :(得分:0)

Cookie绑定到域/子域/路径和端口。可以在域级别设置cookie,所以如果你有像webapp.mydomain.com和jasper.mydomain.com这样的东西,你可以假设它们在同一个端口上。

然而,非常小心实施您自己的SSO /身份验证框架。这需要大量的思考。目前您所建议的实施方案很容易受到:重播,中间人和XSRF攻击......可能还有其他漏洞,但这些漏洞只有3个......抱歉! :d