Estoy tratando de usar OpenLayers 2.12 para mostrar capas WMS de un servidor que tiene habilitada la autenticación básica HTTP.
Intenté manejar la autenticación poniendo el nombre de usuario y la contraseña en el parámetro URL en mi código JavaScript. Ejemplo de creación de capa:
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
});
Por supuesto, esto no es seguro ya que las credenciales se almacenan en código JavaScript y no funcionan en todos los navegadores. Internet Explorer 8 genera un error de seguridad que apunta a OpenLayers.js y se niega a mostrar el mapa. Firefox 13 muestra algunos cuadros de diálogo de autenticación que puedo cancelar (el mapa se muestra correctamente después de eso). En Chrome 23, la autenticación parece funcionar sin problemas.
¿Puede confirmar que no es posible manejar la autenticación básica HTTP de manera cruzada codificándola en la URL y dándola a OpenLayers como en el ejemplo?
¿Puede sugerir formas alternativas de manejar la autenticación básica HTTP para que funcione de manera transparente para el usuario (no se muestran ventanas emergentes de autenticación)? Quizás use algún tipo de servidor proxy para solucionar esto.