Назад | Перейти на главную страницу

Почему mod_jk обходит авторизацию Apache?

Поскольку при переходе с Apache 2.2 авторизация обходится для многих JkMount (кроме jk-status). Если я закрою всплывающее окно с паролем браузера, я получу 401 страницу. Это не тот, который, как я ожидаю, от Apache, а от JBoss, с которым нельзя было разговаривать. (Я обнаружил это, потому что неавторизованные пользователи разговаривают с JBoss.)

На принимающей стороне у нас есть и JBoss 4, и Wildfly 7. Это оба с "Apache / 2.4.3 (Unix) mod_jk / 1.2.37" и "Apache / 2.4.10 (Unix) mod_jk / 1.2.40". Конфигурация всегда как

<Location /XYZ/*>
    JkMount XYZ
    AuthType basic
    AuthUserFile conf/passwd/XYZ
    AuthName "XYZ security"
    Require valid-user
</Location>

У меня даже есть случай, когда идентичная настройка (определение рабочего, <Location>, разрешение файла и содержимое) работает в 2.4.3, но не в 2.4.10. Для других JkMount обе версии ведут себя неправильно. Если я подниму уровень отладки, я не вижу ничего о том, как он это разбирает. Когда я вызываю URL-адрес, он говорит, что для него нет директивы.

Оказывается, вложенный синтаксис JkMount с 1 аргументом бесполезен, потому что для него требуется подстановочный знак в конце, а Location его не понимает. Что работает вытаскивает:

JkMount /XYZ/* XYZ
<Location /XYZ>