JSessionID не является постоянным на веб-сервере Apache - PullRequest
0 голосов
/ 18 декабря 2018

ниже - моя конфигурация httpd.conf.У меня есть сервер Tomcat в качестве внутреннего сервера, и я использую веб-сервер Apache в качестве прокси-сервера для моего сервера Tomcat.

Ниже конфигурация работает нормально для всех веб-страниц, где сеанс не требуется.

При дальнейшем изучении я заметил, что JSESSIONID меняется при каждом веб-запросе, что означает, что идентификатор не сохраняется при отправке запроса и ответа через HTTP-сервер Apache.

Обратите внимание, что приЯ пытался выставить сервер Tomcat напрямую в веб. JSESSIONID является постоянным и работает, как и ожидалось.Однако в качестве требования безопасности нам нужно использовать сервер Tomcat только в качестве внутреннего внутреннего сервера.

Поэтому я не уверен, почему серверу apache http не нравится правильно обрабатывать JSESSIONID.Обратитесь к нам за помощью и сообщите мне, чего мне не хватает в моей конфигурации.

Примечание. Нам не нужна настройка балансировщика нагрузки, поэтому я не рассматриваю модуль mod_proxy_balancer в данный момент.

<VirtualHost *:443>
ServerName www.external.com
ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
         AddOutputFilterByType SUBSTITUTE text/html
    ProxyPreserveHost off
    ProxyPass / http://localhost:8080/internal/
    ProxyPassReverse / http://localhost:8080/internal/    
    Substitute "s|http://localhost:8080/internal|https://www.external.com|i"                
    SSLProtocol all
    SSLEngine on     
    SSLCertificateFile C:/keys/site/external_cert.cer       
    SSLCertificateKeyFile C:/keys/site/www_internal_private.p12.pri.pem
    SSLCertificateChainFile C:/keys/site/Intermediate_CA.cer
</VirtualHost>

Веб-сервер Apache - это Apache 2.4, а движок Tomcat - Tomcat 8.5

.

1 Ответ

0 голосов
/ 20 декабря 2018

Следуйте за ответом serverfault , добавив Set-Cookie Заголовок:

В конце мне просто нужно было добавить следующую строку в мою конфигурацию VirtualHost, которая изменяет все пути файлов cookie с/ WEBAPP_NAME в / (root):

Header edit Set-Cookie "^(.*; Path=)/WEBAPP_NAME/?(.*)" $1/$2
...