我已經被一位自由職業者朋友問及他加入了JSF 2.0項目,並且我正在慢慢提高速度並將它們放在一起。來自Windows Forms .NET世界,我有很多東西要學會說。保護JSF應用程序
我主要關心的是在如何保護JSF應用程序方面缺乏明顯的共識。在這裏提出了一些方法,包括使用Spring安全性,Seam安全性,自定義階段監聽器,或者僅僅使用rendered="#{...}"
屬性來顯示/隱藏基於用戶認證的組件。
我試圖實現其中的一些方法,例如Spring安全性,只是發現它很容易被JSF導航機制擊敗而不是重定向到視圖。換句話說,如果用戶直接鍵入受保護頁面的URL,Spring安全性將會正常工作,但如果h:commandButton
的操作將他帶到那裏,Spring安全性將無法正常工作。
鑑於此,有人建議使用"faces-redirect=true"
強制重定向,但我們認爲這可能會成爲性能問題,因爲這會導致每次從瀏覽器發出2次請求。
另一方面,我放棄了在獲得如此多的缺失依賴關係錯誤後試圖實施Seam安全性。
迄今爲止發現的最佳解決方案是從Duncan Mills - Effective Page Authorization In JavaServer Faces開始的自定義階段偵聽器,但我不完全相信這應該用於面向公共的JSF應用程序。
最後,這是什麼讓我們留下了什麼?我知道這是一個非常廣泛的開放式問題,但我真的不知道下一步該去哪裏。我很確定我已經按照不同的教程來寫了這封信,例如Spring教程,但我仍然不滿意它的工作方式。
任何人都至少可以證實/弱化Spring安全性應該跨JSF轉發的事實,因爲我看過其他人有很多帖子都有相同的問題嗎?這至少會給我一個繼續前進的方向。
謝謝。
這幾乎是我如何做,可以簡單和安全。 –