Форма входа в защищенное приложение в Tomcat - PullRequest
2 голосов
/ 25 января 2010

У меня есть обычная HTML-страница на обычном http-сервере Apache (http://yyy.yyy.yyy.yyy/index.html), с формой аутентификации, с этой формой мне нужно получить доступ с учетными данными к приложению, расположенному на другом сервере с другим IP, на этом сервере есть защищенное приложение с tomcat: вот форма входа на http-сервер apache:

<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>

отправка работает только случайным образом в chrome и не работает в IE и FF. я делаю что-то не так?

Ответы [ 2 ]

0 голосов
/ 06 мая 2010

Я рекомендую установить tamperdata в Firefox, а затем нажать кнопку «Начать тампер» в окне тамперданных. Нажмите отправить на форуме, а затем «подделать» запрос. Это позволит вам просматривать и изменять все данные в запросе http.

Там может быть некоторые различия, когда запрос отправляется с удаленного сервера против локально. Для одного «реферер» будет другим, и некоторые приложения проверяют это как форму защиты CSRF. Еще одна вещь, на которую стоит обратить внимание, это отсутствие переменных get / post, вы, возможно, что-то забыли, или это может быть изменено с помощью javascript. Финли, убедитесь, что content-type запроса одинаковы.

Вот как вы можете изменить тип содержимого почтового запроса:

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

Другой вариант - использовать Wireshark для захвата запросов http, сгенерированных chrome / ie / firefox. Вы можете использовать инструмент сравнения, такой как Meld , для сравнения пакетов.

0 голосов
/ 25 января 2010

Вам не хватает кнопки отправки. Chrome отправляет значения даже без кнопки отправки при нажатии клавиши ввода. Firefox и IE этого не делают.

Если вам не нужна кнопка sumbit (не рекомендуется), вы можете попробовать что-то вроде

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