Я хочу, чтобы пользователи проходили аутентификацию при вызове определенного метода HTTP, но при этом не нуждались в аутентификации при вызове других методов HTTP. Я использую Limit
директива, потому что она должна делать то, что я хочу, но я не могу заставить ее работать.
SSLVerifyClient none
<Location /foo>
SSLVerifyClient none
<Limit PUT>
SSLVerifyClient require
</Limit>
</Location>
Кажется, что последний SSLVerifyClient
оператор всегда выполняется, независимо от того, какой вызов я делаю (PUT, DELETE)
Я тоже пробовал использовать LimitExcept
но он ведет себя так же неправильно.
Поскольку я не могу найти ответы в Интернете, я предполагаю, что это не проблема, но я начал работать над этим на прошлой неделе, чтобы заменить коллегу, который находится в отпуске. Кто-нибудь может мне помочь?
Кажется, что Limit
Директива работает только для ограничения доступа. Другие директивы внутри него могут вообще не работать или работать не так, как вы ожидаете. В вашем случае он может не запускать разные значения SSLVerifyClient
в зависимости от типа запроса.
Обходной путь может заключаться в создании разных каталогов или псевдонимов, настроенных с разными значениями SSLVerifyClient
директива и, возможно, обработка другого набора HTTP-методов.
http://httpd.apache.org/docs/current/mod/core.html#limit:
<Limit> Директива
Описание: ограничить закрытые элементы управления доступом только определенными методами HTTP.
Цель директивы - ограничить действие элементов управления доступом назначенными методами HTTP. Для всех остальных методов ограничения доступа, заключенные в скобки, не действуют.