Ich versuche, OpenLayers 2.12 zu verwenden, um WMS-Ebenen von einem Server anzuzeigen, auf dem die HTTP-Basisauthentifizierung aktiviert ist.
Ich habe versucht, mit der Authentifizierung umzugehen, indem ich den Benutzernamen und das Passwort in den URL-Parameter meines JavaScript-Codes eingegeben habe. Beispiel für eine Layer-Erstellung:
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
});
Dies ist natürlich nicht sicher, da die Anmeldeinformationen im JavaScript-Code gespeichert sind und nicht in allen Browsern funktionieren. Internet Explorer 8 gibt einen Sicherheitsfehler aus, der auf OpenLayers.js verweist, und verweigert die Anzeige der Karte. Firefox 13 zeigt einige Authentifizierungsdialoge an, die ich abbrechen kann (die Karte wird danach korrekt angezeigt). In Chrome 23 scheint die Authentifizierung einwandfrei zu funktionieren.
Können Sie bestätigen, dass die HTTP-Basisauthentifizierung nicht browserübergreifend gehandhabt werden kann, indem Sie sie in der URL verschlüsseln und OpenLayers wie im Beispiel übergeben?
Können Sie alternative Vorgehensweisen für die HTTP-Basisauthentifizierung vorschlagen, damit diese für den Benutzer transparent funktioniert (es werden keine Authentifizierungs-Popups angezeigt)? Verwenden Sie möglicherweise eine Art Proxy-Server, um dies zu umgehen.