2016-04-14 95 views
3

我已經使用BASIC驗證在Tomcat 7上配置了一個應用程序。 在開發測試工作正常,但在生產環境中,我不會收回任何東西。在Chrome控制檯中,我可以看到一個404未找到的錯誤。Tomcat 7上的安全網站404

enter image description here

,但如果我執行curl命令我可以到達的頁面。

curl -vv -u username:password http://10.XXX.XXX.21/historia/es/index.jsp 

任何人都可以幫助我嗎? PS:如果我編輯了請求標題,添加身份驗證(在Firefox中),我收到了200狀態,但頁面顯示爲白色。我什麼都不懂。

在此先感謝!

+0

...並且'curl'來自Chrome請求所在的主機?對不起,愚蠢的問題,但這可以有很大的不同。 –

+0

不是,curl來自同一網絡中的另一臺機器。我無法在此服務器中使用chrome。謝謝! –

回答

0

我認爲在生產中你試圖從外部網絡連接到服務。嘗試添加地址「0.0.0.0」來收聽所有地址。 在server.xml中,嘗試像下圖一樣編輯。

<Connector port="8080" protocol="HTTP/1.1" 
      maxHttpHeaderSize="65536" 
      connectionTimeout="20000" 
      redirectPort="8443" 
      address="0.0.0.0" /> 

關機,之後

+0

另一個問題可能是URL中缺少端口。通常tomcat在端口8080上運行,並且必須添加。嘗試在http://10.XXX.XXX.21:8080/historia/es/index.jsp上進行GET請求。我猜10.XXX.XXX.21是你的外部IP,如果不是,你應該在端口8080上使用端口轉發。 希望它有幫助。 –

+0

但'curl'去w/o端口和工作... –

+0

嗨Radulescu,我試過你的配置,但它仍然失敗。 –

0

10.XXX.XXX.21啓動tomcat的是,你可以從網絡內部稱它爲私有地址。您可以將連接轉發給該主機,但這是不同的故事。爲什麼你有404而不是主機未找到?那麼,在其他網絡中,使用chrome的網絡 - 您可以使用相同的ip。

+0

當我禁用web.xml中的安全性時,頁面可以正常工作。我總是在網絡內部調用(ip或hostname以避免平衡器,DNS等問題)。我認爲某些配置可能會影響我的標題響應。我試過與其他應用程序,它沒有。 –

+0

所以我不明白這種情況。但是,您可以在$ CATALINA_BASE/conf/logging.properties中打開日誌以進行身份​​驗證: org.apache.catalina.realm.level = FINEST org.apache.catalina.authenticator.level = FINEST 。 –