У меня есть 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.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
Браузер Хром. Apache и Tomcat7 находятся в Ubuntu.