Как сохранить сеанс в смешанной среде Apache и Tomcat
У меня есть Apache для обслуживания статического контента и Tomcat для динамического контента, связанного с помощью mod_jk. Мое приложение основано на Spring с использованием Spring Security. Страницы Apache имеют порт 80, страницы Tomcat обслуживаются через порт 8080. Я считаю, что Spring Security правильно вызывает вход в систему и создается файл cookie JSESSIONID. Этот файл cookie JSESSIONID сохраняется, пока я продолжаю переходить к динамическим страницам; то есть на страницы, которые обслуживает Tomcat. Когда я перехожу на статическую страницу, cookie-файл JSESSIONID исчезает. Предположительно это означает, что сеанс Tomcat закончился. Это означает, что когда я впоследствии вернусь к динамической странице, Spring Security потребует повторного входа в систему. Как я могу сохранить Spring Security в смешанной статической и динамической среде такого рода? Есть ли способ сохранить файл cookie JSESSIONID, когда я вернусь на страницу, обслуживаемую Apache.
JSESSIONID создается, когда я впервые получаю доступ к динамическим страницам (когда я делаю вход в систему через Spring-Security). JSESSIONID остается неизменным, пока я перемещаюсь по динамическим страницам (т. Е. По страницам, обслуживаемым Tomcat). Когда я перехожу на статическую страницу, cookie-файл JSESSIONID исчезает (речь не идет об изменении его значения - отсутствует cookie-файл JSESSIONID). Worker Properties - это:
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.lbfactor=50
worker.ajp13_worker.cachesize=10
worker.ajp13_worker.cache_timeout=600
worker.ajp13_worker.socket_keepalive=1
worker.ajp13_worker.socket_timeout=300
Директивы конфигурации:
JkMount /OLOSmember/ ajp13_worker
JkMount /OLOSmember/* ajp13_worker
Браузер Chrome Apache и Tomcat7 находятся на Ubuntu.
1 ответ
В вашем вопросе недостаточно информации для однозначного ответа. Вот несколько вещей, которые вы можете сделать для устранения неполадок.
Используйте firebug, чтобы увидеть, отправляется ли jsessionid при переходе к динамическим страницам, образующим статические страницы. Показывает ли firebug значение изменения идентификатора JSESSION, вы хотите изолировать слой, в котором находится проблема, идентификатор jsession делает его apache, но не передается tomcat или нет?
покажите свои директивы конфигурации mod_jk и файлы worker.properties для tomcat, чтобы мы могли лучше вам помочь.