是否可以集成Spring Security 3和JSF 2,使JSF保持默認工作狀態,而不是在用戶導航時顯示新的url,保留舊的url,而不使用重定向 JSF屬性來瀏覽頁面?Spring Security 3和JSF 2集成不重定向頁面
我找不到關於此的文檔。我找到作者的所有文章在導航時重定向頁面。
感謝
是否可以集成Spring Security 3和JSF 2,使JSF保持默認工作狀態,而不是在用戶導航時顯示新的url,保留舊的url,而不使用重定向 JSF屬性來瀏覽頁面?Spring Security 3和JSF 2集成不重定向頁面
我找不到關於此的文檔。我找到作者的所有文章在導航時重定向頁面。
感謝
默認情況下,FilterSecurityInterceptor將只執行一次,每個請求,沒有做安全再檢查,除非有在URL但JSP/JSF變化轉發頁面呈現爲響應到當前請求,瀏覽器中的url包含前一頁的地址。因此,只需在applicationContext的http元素中設置once-per-request屬性爲false,從而強制安全重新檢查。
<http auto-config="true" use-expressions="true" once-per-request="false">
,並在你的web.xml
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
更增加了工作springSecurityFilterChain過濾器映射轉發調度員info
另外,您還可以通過附加參數faces-啓用頁面重定向redirect = true如下:
<h:form>
<h:commandButton action="page1?faces-redirect=true" value="Page1" />
</h:form>
但也請記住,在您的情況下GET請求看起來更合適,並且BalusC說它的而不是良好實踐使用POST爲可收藏的頁面到頁面導航。
因此,使用<h:link>
或<h:button>
或者使用faces-redirect = true也會導致GET請求。
另見:
抱歉推遲測試它。它沒有奏效。我仍然需要使用faces-redirect = true來使安全工作。 –
我會接受你的答案,但即使使用所有這些配置,我總是需要做page1?faces-redirect = true。 –
是的Ed,我很抱歉,我會更廣泛地測試它,並用Spring打開一個bug。或者如果你認爲你已經做了足夠的研究,請在他們的網站上發佈一個錯誤,並讓我知道。 – Ravi
你能更明確的像一個例子嗎? – Ravi
Spring使用該URL來檢查頁面是否安全。在JSF中默認情況下,當你點擊一個按鈕導航到另一個頁面時,URL不會改變 –