将授权标头返回到QGIS?

时间:2020-06-03 09:21:14

标签: python request python-requests qgis wms

我正在创建可以与QGIS一起使用的WMS API。我希望能够在我正在构建的Flask API中的QGIS和GeoServer(存储数据的地方)之间提供一个额外的授权层。

我从QGIS中需要的是基本的Authorization标头,可以针对我自己的数据库进行读取和验证。

我的想法是QGIS首先发送一个没有任何授权标头的WMS请求,然后应使用基本授权再试一次。我的问题是我不知道如何返回到QGIS要求授权标头,以便它可以发送另一个请求。

我的API在没有授权的情况下有效,并且可以将数据从QGIS传递和返回到Geoserver,然后将GeoServer传递回QGIS。但是我想使用基本授权来确保它的安全。

这是我到目前为止的代码:

def get(self):
    print(request.args)
    print(request.headers)

    if 'Auth' not in str(request.headers):
        url = '<amazonDB>/geoserver/wms?request=GetCapabilities'
        res = requests.get(url)
        return Response(res, mimetype='text/xml')

    url = '<amazonDB>/geoserver/wms?request=GetCapabilities'
    res = requests.get(url, auth=('<username>', '<password>'))
    return Response(res, mimetype='text/xml')

'''

1 个答案:

答案 0 :(得分:0)

原来这是Apache的问题,并在其中添加了 WSGIPassAuthorization开启

进入配置文件。