Apache LoadBalancing, липкая сессия и среда безопасности Spring - PullRequest
5 голосов
/ 29 ноября 2010

У меня есть общедоступный веб-сервер Apache 2.2, который я настроил для прокси-сервера и балансировки запросов к внутренним веб-приложениям, развернутым на Tomcat 6.0.Я использую Spring FW + Spring Framework безопасности в качестве технологического стека, поэтому приложение использует cookie с jsessionid.Приведенный ниже фрагмент взят из конфигурации Apache:

ServerName abc.mydomain.com

ProxyRequests Off
ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On scolonpathdelim=On
ProxyPassReverse / balancer://mycluster/

<Proxy balancer://mycluster >
    BalancerMember http://10.179.40.165:8080/abc
</Proxy>

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

<Location />
    Order allow,deny
    Allow from all
</Location>

Проблема заключается в том, что Spring Security будет перенаправлять на недопустимый URL-адрес сеанса в любомзапрос после успешного входа в систему.Что я могу сделать, чтобы решить проблему?Спасибо

Питер

1 Ответ

0 голосов
/ 19 июля 2013

У меня тоже была эта проблема.

нашел ответ в https://stackoverflow.com/a/9951315/1211174

вот моя конфигурация:

   <VirtualHost vm1.mydomain.com:443>
         ServerName public.domain.name


         <IfModule mod_proxy.c> 
         ProxyRequests Off
         ProxyTimeout 5400

         #should be the otherway. white list instead of black list
        <Proxy *>
           Order deny,allow
           Allow from all
        </Proxy>


        <Proxy balancer://mybalancername>
               BalancerMember ajp://localhost:8209
               BalancerMember ajp://localhost:8210
               ProxySet lbmethod=bytraffic
               ProxySet stickysession=JSESSIONID
        </Proxy>


        ProxyPass / balancer://mybalancername/
        #check out http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html for more info

        ProxyPassReverse /  balancer://mybalancername/
        ProxyPassReverseCookieDomain  balancer://mybalancername  https://public.domain.name



  </IfModule>

похоже, что без

               ProxySet lbmethod=bytraffic
               ProxySet stickysession=JSESSIONID

весенняя охрана не получает правильное печенье

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...