mod_rewrite для удаления SSO (единый вход) - имя соединения в URL - PullRequest
1 голос
/ 17 августа 2011

У меня есть URL-адрес единого входа -

http://<server>/<junction>/<application_context>/ssoLogin.do
e.g. http://pingu.intranet.com/tms/mint/ssoLogin.do

Как только пользователь нажмет эту ссылку. SSO junction добавляет заголовки и перенаправляет на веб-сервер Apache. Моя цель - удалить имя соединения SSO, как только запрос достигнет Apache (где я использую ProxyPass и AJP для подключения к Tomcat App).

Проблема в том, что mod_rewrite выбирает URI - /mint/ssoLogin.do. поэтому не могу удалить имя соединения / тмс. например rewrite.log говорит

init rewrite engine with requested uri /mint/js/jquery/jquery.min.js

Мой файл настроек выглядит как

    ProxyPreserveHost On

# define the balancer, with http and/ or ajp connections
<Proxy balancer://application_cl>
    BalancerMember ajp://pingu01.intranet.com:8009 route=node1 disablereuse=on retry=0
    BalancerMember ajp://pingu02.intranet.com:8009 route=node2 disablereuse=on retry=0
</Proxy>


# Vendor Product ProxyPass Settings
ProxyPass /mint balancer://application_cl/mint stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse /mint balancer://application_cl/mint

# Custom settings to remove junction name for proper javascript loading

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/tms/
RewriteRule ^/tms/(.*)  /$1
</IfModule>


# RequestHeader settings(as per Product documentation)
SetEnvIf X-Forwarded-Proto .+ HAVE_X_FORWARDED_PROTO
RequestHeader set X-Forwarded-Proto "http" env=!HAVE_X_FORWARDED_PROTO
...