У нас есть приложение tomcat, которое отлично работает в IE7/8 и Firefox. Единственный браузер, с которым у нас возникают проблемы (на данный момент мы заботимся) - это Google Chrome. Пользователи могут легко перейти к приложению и войти в систему и сделать все, что им нужно, в Firefox и IE. Однако при попытке входа в систему Chrome сеанс, очевидно, пропадает сразу после входа в систему, и когда пользователь, прошедший проверку подлинности, пытается перейти на другую страницу, он возвращается на страницу входа в систему. Это происходит последовательно.Приложение Tomcat создает новый сеанс на странице перезагрузки при посещении через apache
Я видел другие записи здесь и в других местах, которые предполагают, что путь контекста может быть виноват. Я попытался установить ProxyReverseCookiePath, но это не устраняет проблему.
Наша конфигурация виртуального хоста выглядит следующим образом:
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerAdmin [email protected]
ServerName subdomain.example.com
DocumentRoot /var/www
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /context/ ajp://127.0.0.1:8009/context/
ProxyPass/ajp://127.0.0.1:8009/context/
#ProxyPassReverse /context/ http://127.0.0.1:8009/context/
#ProxyPassReverse/http://127.0.0.1:8009/context/
#ProxyPassReverseCookiePath /context//
</VirtualHost>
Существует еще одно приложение, развернутое на том же экземпляре котом в контексте ROOT. Я посмотрел на JSESSIONID, который установлен в cookie, который отправляется обратно в Chrome, и он изменяется при каждом запросе, в то время как он не для IE и Firefox.
Здесь я затрудняюсь. Любые идеи приветствуются!
Мы используем 6.0.23 кота, а также апач 2.2.14
Я столкнулся с той же проблемой с Tomcat 5.5 и Chrome 9.0.597.84 (тот же эффект был с Chrome 8). Какую версию вы использовали? – basZero
Приношу свои извинения за то, что вы не поняли, что есть ответ. Не уверен, что это все еще актуально: я понятия не имею, какая версия Chrome была той, что я использовал в то время. tomcat был 6.0.23 и apache 2.2.14 – Marco
@basZero: Оказалось, что браузер не всегда отправляет файл cookie на сервер или сервер отбрасывает его, если считает, что путь контекста не соответствует. Это должно сделать трюк. Это делает для меня: ProxyPass/context ajp: //127.0.0.1: 8009/context/ ProxyPassReverse/context/http://127.0.0.1:2000/context/ ProxyPass/ajp: //127.0.0.1: 8009/context/ ProxyPassReverse/http://127.0.0.1:2000/context/ ProxyPassReverseCookiePath/context/ Последняя строка гарантирует правильность пути, написанного в файле cookie. – Marco