2010-01-25 92 views
1

我有一個正常的Apache頁面在一個普通的Apache HTTP服務器(http://yyy.yyy.yyy.yyy/index.html),身份驗證表格,我需要通過憑據訪問位於其他服務器上的應用程序與diferent IP,該服務器具有Tomcat的受保護的應用程序:這裏是Apache HTTP服務器的登錄表單:登錄表單到一個安全的應用程序在tomcat

<form method="POST" id="theForm" 
     action="http://xxx.xxx.xxx.xxx:8080/securedapp/j_security_check"> 
    <input name="j_username" type="text" class="tx_form" id="j_username" size="20" /> 
    <input name="j_password" type="password" class="tx_form" id="textfield2" size="20" /> 
    <input name="btn" type="submit" value="login" /> 
</form> 

只提交工作在鉻隨機的,在IE和FF不工作。我做錯了什麼?

+0

提交按鈕在哪裏?在服務器日誌中沒有用嗎?沒有更多的代碼可能會影響提交嗎? HTTP請求是否真的被觸發?當「不工作」時會發生什麼?等..有關這個問題的更多信息,請:) – BalusC 2010-01-25 15:28:14

+0

在登錄代碼(j_security_check)中放入一些日誌消息(用戶名和密碼),看它們是否被打印,以及在日誌中打印什麼。 – Bozho 2010-01-25 15:35:14

回答

0

您錯過了一個提交按鈕。 當您按下回車鍵時,即使沒有提交按鈕,Chrome也會發送這些值。 Firefox和IE不支持。

如果您不希望透過按鈕(不推薦),你可以嘗試像

<input type='text' name='bla' onKeyDown="if (window.event.keyCode==13) this.form.submit();"> 
+0

這不太可能是問題的根本原因......我對缺少提交按鈕的評論是出於其他原因;) – BalusC 2010-01-25 15:36:41

+0

如果他在帖子中顯示的表單確實是完整的表單,我不知道爲什麼它不是問題的根源。所以:要麼答案是正確的,要麼是沒有足夠詳細的問題:-p – Fortega 2010-01-25 15:38:08

+0

theres a submit button sorry for the mistake。我剛剛剝離了代碼並錯過了按鈕,現在即時編輯問題 – patricio 2010-01-25 15:41:16

0

我建議在Firefox中安裝tamperdata,然後單擊tamperdata窗口中的「啓動篡改」按鈕。點擊論壇上的提交,然後「篡改」請求。這將允許您查看和修改http請求中的所有數據。

當請求從遠程服務器發送到本地時,可能會有一些差異。對於一個「引用者」將是不同的,一些應用程序將此視爲CSRF保護的一種形式。另一個需要注意的地方是缺少get/post變量,你可能已經忘記了一些東西,或者可能用javascript修改。 Finley確保請求的content-type是相同的。

這是你如何改變一個POST請求的內容類型:

<form action="http://xxx.xxx.xxx.xxx:8080/securedapp/j_security_check" 
    enctype="multipart/form-data" 
    method="post"> 

另一種選擇是使用Wireshark捕獲由鉻/ IE/Firefox中產生的HTTP多個請求。您可以使用差異工具(如Meld)來比較數據包。

相關問題