Назад | Перейти на главную страницу

Spring Security, Apache 2 с выходом на Tomcat 6. Не удается войти / сразу выходит из системы

Я развернул свое приложение GWT, использующее SpringSecurity, и у меня возникла проблема.

После ввода учетных данных он немедленно выходит из системы. Если я введу неправильные учетные данные, появится сообщение «неправильные учетные данные», но когда я введу правильные, он просто вернется на экран входа в систему. (Итак, соединение mysql работает)

Моя настройка выглядит так: Apache 2 выходит на Tomcat6 на Ubuntu 10.04.2 LTS. Я использую mod_jk между ними.

Я никогда раньше не использовал этот mod_jk, обычно у меня есть автономный Tomcat, но требования обязывают меня использовать его сейчас.

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

Пожалуйста, дайте мне несколько советов, где искать! Или уже должно работать? Просто хочу знать, есть ли стандартные процедуры, которые нужно предпринять, чтобы SpringSecurity работал в такой настройке.

Я следовал следующему руководству по установке mod_jk и получил конфигурацию точно так, как описано в этом руководстве: http://www.howtoforge.com/how-to-install-tomcat6-with-sun-java-and-apache2-integration-on-ubuntu-10.04-lucid-lynx-with-virtual-hosts

Раньше я сам немного занимался этой же проблемой. Если бы некоторые конфигурации работали в одном браузере, а не в другом. Однако я обнаружил, что исправление состоит в том, что вы не должны использовать http и порт 8080 в конфигурации apache httpd. Вы должны использовать ajp и порт 8009 (который в Tomcat включен по умолчанию). Необходимые части конфигурации я изложил ниже:

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_module modules/mod_proxy.so

...

## App Configuration
ProxyPass    /app1                           ajp://localhost:8009/app1
ProxyPass    /app1/j_spring_security_check   ajp://localhost:8009/app1/j_spring_security_check
ProxyPass    /app1/j_spring_security_logout  ajp://localhost:8009/app1/j_spring_security_logout

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