J'essaie d'utiliser OpenLayers 2.12 pour afficher les couches WMS à partir d'un serveur sur lequel l'authentification HTTP de base est activée.
J'ai essayé de gérer l'authentification en mettant le nom d'utilisateur et le mot de passe dans le paramètre URL dans mon code JavaScript. Exemple de création de couche:
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
});
Bien sûr, cela n'est pas sécurisé car les informations d'identification sont stockées dans du code JavaScript et ne fonctionnent pas dans tous les navigateurs. Internet Explorer 8 donne une erreur de sécurité pointant vers OpenLayers.js et refuse d'afficher la carte du tout. Firefox 13 affiche des boîtes de dialogue d'authentification que je peux annuler (la carte s'affiche correctement après cela). Dans Chrome 23, l'authentification semble fonctionner parfaitement.
Pouvez-vous confirmer qu'il n'est pas possible de gérer l'authentification de base HTTP de manière croisée en la codant dans l'URL et en la donnant à OpenLayers comme dans l'exemple?
Pouvez-vous suggérer d'autres façons de gérer l'authentification de base HTTP afin qu'elle fonctionne de manière transparente pour l'utilisateur (aucune fenêtre contextuelle d'authentification ne s'affiche)? Utilisez peut-être une sorte de serveur proxy pour contourner ce problème.