2012-01-12 45 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