2011-11-07 8 views
0

Все,Spring Security - странные ошибки

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

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

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

Неужели кто-то испытал странное поведение, подобное этому?

ответ

0

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

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

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

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

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

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

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

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

+0

Я также понял проблемы 2 и 3. Я забыл добавить страницу с ошибкой входа в список «разрешенных», поэтому он всегда перенаправляется на обычную страницу входа. user973479

Смежные вопросы