有没有办法使用地理服务器中的 WMS 存储,但在每次请求 SQL 查询数据库之前出于权限原因

Posted

技术标签:

【中文标题】有没有办法使用地理服务器中的 WMS 存储,但在每次请求 SQL 查询数据库之前出于权限原因【英文标题】:Is there way to use WMS store from geoserver but before each request SQL query database for permission reasons 【发布时间】:2020-01-24 13:53:39 【问题描述】:

我有:

    OpenLayers 地理服务器 数据库 WMS 空间数据服务

WMS 数据位于远离数据库 (3) 的第三方空间服务 (4) 中。我想在将 WMS 请求转发到该空间服务之前查询我的数据库。

权限检查基本上会验证给定用户会话允许获取哪些数据。

权限检查后根据db查询结果过滤WMS数据。

这可以通过 Geoserver 完成吗?如何或是否需要单独的代理? (我知道可以对 DB 中存在的几何图形进行 SQL 视图,但是在这种情况下,当几何图形位于其他位置时该怎么办。)

感谢您的帮助!

【问题讨论】:

【参考方案1】:

你想要什么有点不清楚,但听起来像是 GeoFence extension 设计的东西,它可以与 GeoFence 的内部或外部安装一起使用。

GeoFence 提供了 GeoServer 的 GeoServer 安全子系统的替代方案,允许更高级的安全配置,例如结合数据和服务限制的规则。它使用客户端-服务器模型,并且该插件仅提供客户端组件。它必须连接到外部地理围栏服务器,或与 GeoServer 集成地理围栏服务器地理围栏内部服务器结合使用。

【讨论】:

以上是关于有没有办法使用地理服务器中的 WMS 存储,但在每次请求 SQL 查询数据库之前出于权限原因的主要内容,如果未能解决你的问题,请参考以下文章

Geoserver WMS 预渲染

地理服务器:单个 url 中的多层 gwc

WMS 粉色瓷砖(地理服务器/网络地图)

手动生成 WMS GetFeatureInfo URL

iOS高德地图WMS服务&Mapbox地图WMS服务

在传单中获取WMS的最小缩放级别