Я намагаюся використовувати 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, щоб вона прозоро працювала для користувача (не відображаються спливаючі вікна аутентифікації)? Можливо, використовуйте якийсь проксі-сервер, щоб обійти це.