Spring Security - Странные ошибки - PullRequest
0 голосов
/ 07 ноября 2011

All

Я пытаюсь добавить Spring Security (3.0.7) в мое веб-приложение (Spring 3.0.6, Tiles 2.2). По умолчанию работает как положено, но я не могу создать пользовательский, который работает. Возникли некоторые проблемы:

  1. Каждый раз, когда пользователь нажимает на ссылку для входа, страница входа вызывается дважды
  2. UserDetailsService генерирует исключение, если пользователь не существует, но исключение никогда не берется и не используется. Это заставляет перенаправлять на страницу входа в систему вместо URL-адреса аутентификации-сбоя
  3. Я никогда не вижу сообщений об ошибках при входе с неверным именем пользователя (это может быть связано с предыдущей проблемой, упомянутой выше)
  4. После успешного входа в систему иногда он открывается на нужной странице, в других случаях он случайным образом открывает файл javascript, на который ссылалась внутри страницы.

Я следовал всем учебникам там и не могу придумать ничего работающего. Кто-нибудь знает класс, ответственный за создание имени входа по умолчанию? Возможно, я могу посмотреть на исходный код и подражать тому, что у них есть.

Кто-нибудь испытывал такое странное поведение?

1 Ответ

0 голосов
/ 08 ноября 2011

Я разобрался с 2 своими проблемами. Я публикую их на случай, если у кого-то еще случится то же самое.

Для # 1 / # 4: сайт использовал плитки, и по всему сайту использовался блок заголовка html по умолчанию.

<html>
 <head>
  <script src="foo.js" type="text/javascript">
 </head>

Экспликация конфигурации заблокировала этот файл javascript для пользователей, которые не вошли в систему.

    <intercept-url pattern="foo.js" access="isAuthenticated()"/>

Поэтому, когда пользователь заходит на домашнюю страницу, сайт загружается, за исключением foo.js. Так как методы в foo.js никогда не вызывались до входа в систему, казалось, все работало нормально.

Однако, когда кто-то попытался войти в систему, Spring Security увидел foo.js как первую защищенную страницу, которая открылась, и автоматически открыл ее.

Это также привело к двойному вызову страницы входа. Один раз для реальной ссылки входа в систему и один раз для файла foo.js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...