Cas-защищенный сайт за обратным прокси apache

Моя настройка:

  • Кас сервер (скажем, URL https://localhost:8443/cas-server/)

  • Веб-сайт, защищенный от несанкционированного доступа, размещенный на tomcat-сервере, на котором работает cas-клиентhttps://localhost:4448/myApp)

  • Httpd apache2, с mod auth cas и proxy_http, который используется в качестве обратного прокси. (http://localhost:80)

Я хочу настроить обратный прокси-сервер на что-то вроде этого:

<Location /proxyTest >
      ProxyPass https://localhost:4448/myApp
      ProxyPassReverse https://localhost:4448/myApp
</Location>

А потом уметь писать

https://localhost/proxyTest

вместо

https://localhost:4448/myApp

И это хорошо работает, меня перенаправляют, я получаю cas-ticket, я аутентифицируюсь и т.д. ПРОБЛЕМА, это то, что URL-адрес страницы cas-login показывает:

https://localhost:8443/cas-server/login?service=https%3A%2F%2Flocalhost%3A4448%2Fmyapp

И после входа в систему, URL-адрес отображается в моем браузере:

https://localhost:4448/myApp

Таким образом, перенаправление не работает должным образом... где-то по пути я возвращаюсь по непроксифицированному URL. Скорее всего со стороны клиента. Как я могу настроить такой прокси для правильной работы, чтобы все это было прозрачным, как только я получил действительный билет?

Включено ли использование Tomcat AJP? Или настраивать и использовать таинственные функции обратного вызова cas proxy в cas-client, которые я никогда не понимал, как их использовать? что-то другое?

1 ответ

Решение

Директива ProxyPassReverse - это то, что переписывает URL-адрес, возвращаемый Apache при перенаправлениях и т. Д. См. Этот вопрос для краткого объяснения.

Я думаю, что вы ищете

<Location /proxyTest>
    ProxyPass https://localhost:4448/myApp
    ProxyPassReverse https://localhost/proxyTest
</Location>

Здесь вы используете http(s), поэтому AJP не участвует. Согласно документации, ProxyPassReverse не требуется для AJP, поэтому вы можете иметь что-то вроде

<Location /proxyText>
    ProxyPass ajp://localhost:4448/myApp
</Location>
Другие вопросы по тегам