Estou tentando usar o OpenLayers 2.12 para exibir camadas WMS de um servidor com a autenticação básica HTTP habilitada.
Tentei manipular a autenticação colocando o nome de usuário e a senha no parâmetro URL no meu código JavaScript. Exemplo de criação de camada:
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
});
É claro que isso não é seguro, pois as credenciais são armazenadas no código JavaScript e não funcionam em todos os navegadores. O Internet Explorer 8 apresenta um erro de segurança apontando para o OpenLayers.js e se recusa a exibir o mapa. O Firefox 13 exibe algumas caixas de diálogo de autenticação que eu posso cancelar (o mapa é exibido corretamente depois disso). No Chrome 23, a autenticação parece funcionar perfeitamente.
Você pode confirmar que não é possível manipular a autenticação básica HTTP de maneira cruzada do navegador, codificando-a na URL e fornecendo-a aos OpenLayers, como no exemplo?
Você pode sugerir maneiras alternativas de lidar com a autenticação básica HTTP para que funcione de forma transparente para o usuário (nenhum pop-up de autenticação é exibido)? Talvez use algum tipo de servidor proxy para solucionar isso.