Я пытаюсь реализовать собственный аутентификатор для Squid, имея что-то вроде
auth_param basic program my_authenticator.sh
в /etc/squid3/squid.conf
файл. Все работает нормально, но я хочу улучшить.
Ответственность my_authenticator.sh
довольно просто: Squid отправляет имя пользователя и пароль и ожидает либо OK
или ERR
назад.
Улучшение, которое я хочу сделать, - это объяснить пользователям, почему им было отказано в услуге, например
ERR You have been browsing too much, come back in 24 hours
В соответствии с Документация по Squid, это вполне возможно:
Ответы «ERR» могут дополнительно сопровождаться описанием ошибки, доступным как% m на возвращенной странице ошибки.
Кто-нибудь может объяснить, что делает %m
стоять за? Я пытался напечатать простой текст после ERR
(без кавычек, как показано выше), но этот текст не отображается во всплывающем окне браузера. Любые идеи?
В %m
используется для вставки вашего сообщения на страницу ошибок, которую видит ваш пользователь, когда на него отвечает squid. Чтобы использовать его, выясните, где находятся страницы ошибок шаблона squid для используемого вами языка. В моей системе Ubuntu страницы ошибок на английском языке расположены по адресу
/usr/share/squid/errors/en
Каждый из файлов представляет собой HTML-файл шаблона, который вы можете изменить в соответствии со своими потребностями или написать свой собственный. Чтобы проверить это, я изменил свой ERR_CACHE_ACCESS_DENIED, например.
<html>
<body>
<h1>ERROR</h1>
<h2>%m</h2>
</body>
</html>
который отображает сообщение, возвращаемое настраиваемым скриптом аутентификации, в строке ERR.