0
我有一個使用JBoss AS7上運行的JSF1.2開發的Web應用程序。除登錄頁面外,所有其他頁面均受保護。我還有一個自定義的FormAuthenticator閥,需要作爲認證過程的一部分進行觸發。如何使用j_security_check登錄後自動將用戶重定向到受保護的頁面
登錄頁面使用j_security_check
。
我的核心要求是:
- 當前登錄頁面時,試圖訪問受保護的頁面(並採取成功登錄後,用戶最初請求的頁面)的用戶。
- 如果用戶直接訪問登錄頁面,成功登錄後將用戶帶到歡迎頁面。
當我嘗試訪問http://server.com/my-app/faces/protected1.jsp
時,要求#1正常工作。
但是,當試圖通過上下文根(即http://server.com/my-app/
)訪問Web應用程序時,我得到了404。
我試圖在web.xml中使用歡迎文件屬性和我的web.xml如下所示:
<welcome-file-list>
<welcome-file>/faces/protected1.jsp</welcome-file>
</welcome-file-list>
...
<!-- login config -->
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login-error.jsp</form-error-page>
</form-login-config>
</login-config>
<!-- security constraints -->
<security-constraint>
<display-name>protected1</display-name>
<web-resource-collection>
<web-resource-name>protected1</web-resource-name>
<url-pattern>/faces/protected1.jsp</url-pattern>
<http-method>GET</http-method>
<http-method>PUT</http-method>
<http-method>HEAD</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>protected1Group</description>
<role-name>WebUserRole</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>WebUserRole</role-name>
</security-role>
我有2個問題:
- 我是在正確的跟蹤試圖獲得歡迎文件作爲登錄後的默認登錄頁面(當用戶直接訪問我的應用程序的上下文根或login.jsp時)?
- 如果我將歡迎文件更改爲未受保護的jsp(例如,沒有安全限制的
hello.jsp
),爲什麼同樣的工作完美無缺?
任何想法非常感謝!謝謝。
本例中的主頁是登錄頁面。所以,如果我有(1)主頁作爲歡迎文件,(2)用戶直接進入主頁(即登錄頁面),那麼我得到一個「HTTP狀態400 - 無效的直接引用到表單登錄頁面」錯誤因爲登錄後沒有重定向到哪裏。 – Thira