Sto cercando di utilizzare OpenLayers 2.12 per visualizzare i livelli WMS da un server in cui è abilitata l'autenticazione di base HTTP.
Ho provato a gestire l'autenticazione inserendo il nome utente e la password nel parametro URL nel mio codice JavaScript. Esempio di creazione di layer:
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
});
Naturalmente questo non è sicuro poiché le credenziali sono memorizzate nel codice JavaScript e non funzionano in tutti i browser. Internet Explorer 8 fornisce un errore di sicurezza che punta a OpenLayers.js e si rifiuta di visualizzare la mappa. Firefox 13 apre alcune finestre di dialogo di autenticazione che posso annullare (la mappa viene visualizzata correttamente dopo quella). In Chrome 23 l'autenticazione sembra funzionare alla perfezione.
Potete confermare che non è possibile gestire l'autenticazione di base HTTP in modo cross-browser codificandola nell'URL e dandola a OpenLayer come nell'esempio?
Puoi suggerire modi alternativi per gestire l'autenticazione di base HTTP in modo che funzioni in modo trasparente per l'utente (non vengono visualizzati popup di autenticazione)? Forse utilizzare un qualche tipo di server proxy per aggirare questo.