Я пытаюсь использовать OpenLayers 2.12 для отображения слоев WMS с сервера, на котором включена базовая аутентификация HTTP.
Я попытался обработать аутентификацию, указав имя пользователя и пароль в параметре URL в моем коде JavaScript. Пример создания слоя:
myLayer = new OpenLayers.Layer.WMS('background',
'https://username:password@ws.nls.fi/rasteriaineistot/image?',
{
layers: 'background',
bbox: '-380188,6249943,1347312,8226943'
},
{
displayInLayerSwitcher: true,
isBaseLayer: false,
projection: 'EPSG:3067',
visibility: true
});
Конечно, это небезопасно, поскольку учетные данные хранятся в коде JavaScript и работают не во всех браузерах. Internet Explorer 8 выдает ошибку безопасности, указывающую на OpenLayers.js, и вообще отказывается отображать карту. Firefox 13 выскакивает некоторые диалоги аутентификации, которые я могу отменить (карта отображается правильно после этого). В Chrome 23 аутентификация работает безупречно.
Можете ли вы подтвердить, что невозможно обработать базовую аутентификацию HTTP кросс-браузерным способом, кодируя ее в URL и передавая ее OpenLayers, как в примере?
Можете ли вы предложить альтернативные способы обработки базовой аутентификации HTTP, чтобы она работала прозрачно для пользователя (не отображаются всплывающие окна аутентификации)? Возможно, используйте какой-то прокси-сервер, чтобы обойти это.