мы боролись со следующей проблемой, используя spring security 1.2.1, grails 1.3.7 и tomcat 7.0.22.на наших разработчиках у нас не было проблем при входе в наше приложение.я думаю, что плагин Grails Tomcat использует 6.x версию Tomcat.мы определили следующую тестовую последовательность для процесса входа в систему:
, как вы можете видеть очень простой тестовый пример :-),Результат теста выглядит следующим образом: пользователь успешно прошел аутентификацию, но после входа в систему он перенаправляется на страницу отказа в доступе.сеанс был создан, потому что пользователь смог выполнить другие разрешенные действия, и журнал показывает успешную аутентификацию (журнал enabeld spring secure на уровне отладки).Так почему же происходит перенаправление на страницу, на которой отказано в доступе?
tocmat 7.x предполагает, что файлы cookie не активированы, добавляет идентификатор сеанса в URL-адрес перенаправления и дополнительно устанавливает файл cookie через http-заголовок «set cookie».это та точка, в которой весенний плагин безопасности перепутан.
http ответ j_spring_security_check
HTTP/1.1 302 Moved Temporarily
Connection: Keep-Alive
Content-Length: 0
Date: Fri, 14 Oct 2011 06:41:59 GMT
**Location: https://myserver/main;jsessionid=8341CD832CAF4569A95BBF436395744E**
Server: Apache-Coyote/1.1
**Set-Cookie: JSESSIONID=8341CD832CAF4569A95BBF436395744E;** Path=/etsweb/; HttpOnly
с последующим http get https://myserver/main;jsessionid=8341CD832CAF4569A95BBF436395744E
http response
HTTP/1.1 302 Moved Temporarily
Connection: Keep-Alive
Content-Length: 0
Date: Fri, 14 Oct 2011 06:41:59 GMT
Location: https://myserver/login/denied
Server: Apache-Coyote/1.1
решение было отключить URLпереписать, установив следующий тег в файле web.xml
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
Я не знаю, является ли это ошибкой весенней секунды или ошибкой мышления.