WMS服务基本认证

问题描述 投票:0回答:1

我正在没有 root 访问权限的服务器上构建传单地图。 我想添加一个通过基本身份验证(用户名和密码)保护的 WMS 服务。 传单中有一个简单的方法,使用 L.tileLayer.wms 添加 WMS 服务,但这不适用于安全的 WMS 服务。那么有没有一种方法可以在 WMS 服务器上进行身份验证并接收 WMS 图块并将其解析为传单?将登录凭据添加到 WMS URL(例如 https://用户名:[电子邮件受保护])对我不起作用。

authentication leaflet wms
1个回答
0
投票

使用基本身份验证时,您将标头中的用户名和密码传递给服务器:

Authorization: Basic <credentials>

<credentials>
是 Base64 编码的用户名和密码,由单个冒号连接
:

您可以使用 leaflet-wms-header 传递自定义标头。不幸的是,我手头没有任何带有基本身份验证的 WMS 服务器用于测试,但这里是一个基于 leaflet-wms-header 提供的示例的示例:

// untested code

var wmsLayer = L.TileLayer.wmsHeader(
    'https://GEOSERVER_PATH/geoserver/wms?',
    {
        layers: 'YOUR_LAYER',
        format: 'image/png',
        transparent: true,
    },
    [
        { 
            header: 'Authorization', 
            value: `Basic ${btoa(username + ':' + password)}` 
        },
    ],
    null
).addTo(map);

btoa
将给定字符串编码为Base64编码字符串。)

© www.soinside.com 2019 - 2024. All rights reserved.