我有一個運行在Tomcat 7上的web應用程序,並且我已經成功地通過使用https和相應的端口直接使用SSL和基於表單的身份驗證來工作。不過,我想要求登錄頁面使用SSL,並且如果我導航到我的Web應用程序的根目錄,似乎無法使其工作。例如。如果我去http://localhost:8080/ProjectManagementSystem/login.html
它重定向到SSL,但不是如果我去http://localhost:8080/ProjectManagementSystem
後者會重定向到登錄頁面,但不會更改爲SSL。使用webapp的web.xml重定向到SSL登錄頁面
這是可能的,而無需將登錄頁面移動到其自己的目錄(如this question)?
從web.xml中的相關作品是:
<security-constraint>
<web-resource-collection>
<web-resource-name>PMS</web-resource-name>
<url-pattern>/login.html</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>ProjectManagementSystem</realm-name>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/error.html</form-error-page>
</form-login-config>
</login-config>
我已經嘗試了多種不同的配置(如添加額外的URL的模式,如/),但不能得到任何東西,當我去重定向到網絡應用程序的根。我真的很感激知道這是不可能的,或者我只是做錯了什麼。謝謝。
ETA:我實際上繼續嘗試將login.html移動到login/login.html並將其更改爲<url-pattern>/login/*</url-pattern>
,但它仍然不起作用。所以我認爲我一定在做錯事,但是我不能爲了我的生活而弄清楚什麼。
ETA2:我也嘗試過<url-pattern>/*</url-pattern>
和<url-pattern>*</url-pattern>
和<url-pattern>*.html</url-pattern>
並沒有這些工作要麼...
ETA3:我試圖改變網絡資源的名稱爲好,如果它與另一部分發生衝突web.xml,但仍然不起作用。我沒有想法。
你已經找到了問題但安全性約束使用兩個URL的方式來解決這個問題?我有同樣的問題。 –
不,不幸的是我還沒有設法解決這個問題。它現在是在後面的燃燒器,但我認爲,如果我仍然無法找到一個web.xml的方式來做到這一點,我將不得不手動重定向(在servlet中可能?)。似乎應該有辦法做到這一點,但我還沒有找到任何東西。 – Maltiriel