打开图层3 WMS身份验证

时间:2017-07-10 12:34:37

标签: openlayers-3 geoserver

我有一个GeoServer,并希望只通过WMS向拥有用户帐户的用户提供图层。可以在GeoServer端进行设置,因为您可以启用基本身份验证,然后将凭据作为URL的一部分传递。

这在Firefox中运行良好,遗憾的是,现在许多浏览器已删除此功能,因为URL中不推荐使用基本身份验证。

所以设置一个URL:

https://MY_USER_NAME:MY_PASSWORD@www.BLAH.com

不再有效。

因此,在制作OL3 WMS请求时,我对如何在客户端提供凭据感到很头疼。似乎缺乏关于此的文件。

通常我的WMS调用如下所示:

WMS_layer = new ol.layer.Tile({
      preload: Infinity,
      visible: true,
      opacity:0.7,
      extent: ol.proj.transformExtent([-1.194, 51.880, -1.111, 51.930], "EPSG:4326", "EPSG:3857"),
      source: new ol.source.TileWMS(({
        url: 'https://www.my-geoserver.co.uk/geoserver/' + workspace + '/wms',
        params: {'LAYERS': workspace + ':' + layer_name, 'TILED': true, 'VERSION': '1.3.0'},
        projection: projection,
        serverType: 'geoserver',
        FORMAT: 'image/jpeg'
        }))
});

因此,由于我无法再向URL添加用户名和密码,我该如何通过身份验证。我可以使用身份验证标头作为一个解决方案,但如何通过OL3中的WMS调用发送身份验证标头?

我听说过人们倾向于在服务器端使用代理来处理XHR请求,我也不知道从哪里开始!

0 个答案:

没有答案