2011-10-14 4 views
0

мы сражались со следующей проблемой, используя весеннюю безопасность 1.2.1, grails 1.3.7 и tomcat 7.0.22. на наших машинах dev у нас не было проблем во время входа в наше приложение. Я думаю, что в плагине Grails Tomcat используется версия 6.x для tomcat. мы определили следующий тест CACE для процесса регистрации:spring security - sessionid url rewriting with tomcat 7

  • удалить все куки
  • логин

, как вы можете увидеть очень простой тест :-). результат теста выглядит следующим образом: пользователь был успешно аутентифицирован, но после того, как логин будет перенаправлен на страницу отказа от доступа. сеанс был создан, поскольку пользователь смог выполнить другие разрешенные действия, и журнал показывает успешную аутентификацию (безопасный журнал с запасом энергии на уровне отладки). так почему происходит перенаправление на страницу отказа от доступа?

tocmat 7.x предполагает, что никакие файлы cookie не активируются и добавляет sessionid к URL-адресу перенаправления и добавляет cookie 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

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> 

Я не знаю, является ли это ошибкой весны или ошибкой мышления.

+0

Paste соответствующие части конфигурации безопасности, пожалуйста. Также обратите внимание на механизм защиты от атак на фиксацию сессии в весенней безопасности. – Simeon

+0

Я не использую специальные настройки безопасности пружины, связанные с этой проблемой. Я попытался включить защиту фиксации сеанса, но без успеха. – hitty5

ответ

0

Кроме того, убедитесь, что в ваших настройках безопасности используется дикая карта, используя IS_AUTHENTICATED_ANONYMOUSLY, а не ROLE_ANONYMOUS.

'/ **': [ 'IS_AUTHENTICATED_ANONYMOUSLY']

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