Saya mencoba menggunakan OpenLayers 2.12 untuk menampilkan lapisan WMS dari server yang telah mengaktifkan otentikasi dasar HTTP.
Saya telah mencoba menangani otentikasi dengan memasukkan nama pengguna dan kata sandi dalam parameter URL dalam kode JavaScript saya. Contoh pembuatan 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
});
Tentu saja ini tidak aman karena kredensial disimpan dalam kode JavaScript dan tidak berfungsi di semua browser. Internet Explorer 8 memberikan kesalahan keamanan yang menunjuk ke OpenLayers.js dan menolak untuk menampilkan peta sama sekali. Firefox 13 memunculkan beberapa dialog otentikasi yang dapat saya batalkan (peta ditampilkan dengan benar setelah itu). Di Chrome 23 otentikasi tampaknya berfungsi dengan sempurna.
Bisakah Anda mengonfirmasi bahwa tidak mungkin untuk menangani otentikasi dasar HTTP dengan cara lintas-peramban dengan menyandikannya di URL dan memberikannya ke OpenLayers seperti dalam contoh ini?
Bisakah Anda menyarankan cara-cara alternatif untuk menangani otentikasi dasar HTTP sehingga bekerja secara transparan kepada pengguna (tidak ada popup otentikasi yang ditampilkan)? Mungkin menggunakan beberapa jenis server proxy untuk mengatasi ini.