Как передать секрет в rewriterule протоколу AJP

У меня есть сервер Apache под управлением 2.4.6, Tomcat 8.5.33 под управлением lucee.

У нас есть правила перезаписи, которые прокси к AJP через порт 8009.

ProxyPassReverse / ajp://localhost:8009/ timeout=3600
RewriteEngine On

# Rewrite sitemap
RewriteRule ^/sitemap\.txt$ ajp://localhost:8009/sitemap/index.cfm?format=txt [P]
RewriteRule ^/sitemap\.xml$ ajp://localhost:8009/sitemap/index.cfm [P]

Мне нужно реализовать секрет и я могу без проблем настроить server.xml, но с трудом выясняет, как я передаю секрет с помощью правила перезаписи ???

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" maxThreads="400" requiredSecret="PasswordGoesHere!" />

Кто-нибудь знает, как я могу передать секрет ???

Благодаря Grant

1
задан 16 April 2020 в 03:59
2 ответа

Используя mod_proxy_ajp (см. https://httpd.apache.org/docs/trunk/mod/mod_proxy_ajp.html ), вы просто добавляете "? Secret = XXX" на перезаписанный путь директивы ProxyPass. Я никогда не использовал rewriterule для обращения к Tomcat.

Предостережение:? Secret 0x0C String Поддерживается с версии 2.4.42

2
ответ дан 4 January 2021 в 08:26

К сожалению, вы можете Если вы не обновитесь до более поздней версии Apache2, которая поддерживает секретный флаг в mod_proxy_ajp, и даже тогда я не совсем понимаю, как передать флаг с помощью RewriteRule.

У меня есть несколько машин с Debian 9, Apache2 2.4 .25-3 + deb9u9 и Tomcat8 8.5.54-0 + deb9u. В списке ошибок debian был зарегистрирован дефект (см. (Скрытый), но он был закрыт, так как работал должным образом - они не собираются переносить патч на 2.4.25, поэтому с вашим 2.4.6 вам определенно не повезло с заставить эту комбинацию работать с секретным набором.

Единственное решение проблемы - установить secretRequired = "false" в конфигурации коннектора вашего Tomcat server.xml.

2
ответ дан 4 January 2021 в 08:26

Теги

Похожие вопросы