Я пытаюсь автоматически войти в систему для установки Xwiki через базовую аутентификацию. Это потому, что помощь хранится в вики, но мы хотим, чтобы процесс поиска был прозрачным для пользователя.
Мы выдвигаем пользователя на URL (через тег <a>
), например:
http://username:password@xwiki.example.org/xwiki/bin/view/Main?basicauth=1
Это прекрасно работает во всех браузерах, кроме Internet Explorer (см .: http://support.microsoft.com/kb/834489
. К сожалению, 80% нашей пользовательской базы используют Internet Explorer, и нельзя вводить учетные данные вручную.
В настоящее время IIS 7.5 находится перед Xwiki и передает все запросы экземпляру Tomcat на другом сервере. Это отлично работает. Чтобы решить мою проблему, я подумал, что мог бы использовать правило перезаписи IIS для преобразования URL-адреса следующим образом:
http://xwiki.example.org/xwiki/bin/view/Main?basicauth=1&_username=username&_password=password
в это:
http://username:password@xwiki.example.org/xwiki/bin/view/Main?basicauth=1&_username=username&_password=password
Идея заключалась в том, что IIS подставляет параметры строки запроса _username / _password в URL и передает их Tomcat, а Xwiki игнорирует дополнительные параметры.
Я создал правило перезаписи URL, например:
<rule name="BasicAuthRewrite" enabled="true">
<match url="https?://(.+)&?_username=(.+)&_password=(.+)" />
<action type="Rewrite" url="http://{R:2}:{R:3}@xwiki.example.org/{R:1}" />
</rule>
Когда я иду «Тестовый образец» в IIS и предоставляю свой URL, все обратные ссылки ({R: x}) соответствуют данным, которые я хочу. Однако, когда я захожу по URL в моем браузере, правило перезаписи не запускается.
Можно ли как-нибудь достичь желаемого поведения?