ฉันพยายามใช้ OpenLayers 2.12 เพื่อแสดงเลเยอร์ WMS จากเซิร์ฟเวอร์ที่เปิดใช้งานการตรวจสอบสิทธิ์พื้นฐาน HTTP
ฉันพยายามจัดการการรับรองความถูกต้องโดยใส่ชื่อผู้ใช้และรหัสผ่านในพารามิเตอร์ URL ในรหัส JavaScript ของฉัน ตัวอย่างการสร้างเลเยอร์:
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
});
แน่นอนว่าสิ่งนี้ไม่ปลอดภัยเนื่องจากข้อมูลรับรองจะถูกเก็บไว้ในรหัส JavaScript และไม่สามารถใช้งานได้ในเบราว์เซอร์ทั้งหมด Internet Explorer 8 ให้ข้อผิดพลาดด้านความปลอดภัยชี้ไปที่ OpenLayers.js และปฏิเสธที่จะแสดงแผนที่เลย Firefox 13 แสดงกล่องโต้ตอบการตรวจสอบความถูกต้องซึ่งฉันสามารถยกเลิกได้ (แผนที่จะแสดงอย่างถูกต้องหลังจากนั้น) ใน Chrome 23 การตรวจสอบสิทธิ์ดูเหมือนว่าจะทำงานได้อย่างไร้ที่ติ
คุณยืนยันได้หรือไม่ว่าเป็นไปไม่ได้ที่จะจัดการกับการพิสูจน์ตัวตนพื้นฐาน HTTP ในลักษณะข้ามเบราว์เซอร์โดยการเข้ารหัสใน URL และมอบให้แก่ OpenLayers อย่างเช่น
คุณสามารถแนะนำวิธีอื่นในการจัดการการรับรองความถูกต้องพื้นฐาน HTTP เพื่อให้ทำงานได้อย่างโปร่งใสกับผู้ใช้ (ไม่มีป๊อปอัปการรับรองความถูกต้องแสดง) อาจใช้พร็อกซีเซิร์ฟเวอร์บางประเภทเพื่อแก้ไขปัญหานี้