Próbuję użyć OpenLayers 2.12 do wyświetlenia warstw WMS z serwera z włączoną funkcją podstawowego uwierzytelniania HTTP.
Próbowałem obsłużyć uwierzytelnianie, wpisując nazwę użytkownika i hasło w parametrze URL w moim kodzie JavaScript. Przykład tworzenia warstwy:
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
});
Oczywiście nie jest to bezpieczne, ponieważ poświadczenia są przechowywane w kodzie JavaScript i nie działają we wszystkich przeglądarkach. Internet Explorer 8 wyświetla błąd bezpieczeństwa wskazujący na OpenLayers.js i w ogóle nie wyświetla mapy. Firefox 13 wyświetla niektóre okna dialogowe uwierzytelniania, które mogę anulować (po tym mapa wyświetla się poprawnie). W Chrome 23 uwierzytelnianie wydaje się działać bezbłędnie.
Czy możesz potwierdzić, że nie można obsłużyć podstawowego uwierzytelniania HTTP w sposób przeglądarkowy, kodując go w adresie URL i przekazując OpenLayers jak w przykładzie?
Czy możesz zasugerować alternatywne sposoby obsługi podstawowego uwierzytelniania HTTP, aby działało ono w sposób przejrzysty dla użytkownika (nie wyświetla się wyskakujące okienko uwierzytelnienia)? Być może użyj jakiegoś serwera proxy, aby obejść ten problem.