我正在创建可以与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')
'''
答案 0 :(得分:0)
原来这是Apache的问题,并在其中添加了 WSGIPassAuthorization开启
进入配置文件。