如何根据用户角色将 geoserver WFS 服务配置为仅访问某些图层?

Posted

技术标签:

【中文标题】如何根据用户角色将 geoserver WFS 服务配置为仅访问某些图层?【英文标题】:How can geoserver WFS service be configured to access only certain layers based on user role? 【发布时间】:2015-09-18 12:06:33 【问题描述】:

我们使用的是 geoserver 2.7.2,但在设置 WFS 安全性时遇到了问题。我们的目的是仅向某些用户发布包含地理服务器图层的给定工作空间。我在文档中读到你不能“结合”层安全和服务安全。但即使是自定义代码,我们也需要某种 方式来做到这一点。我希望可能会有用户了解如何从技术上解决问题,使用过滤器等或其他方法。

为了清楚起见,我们想设置用户A 可以访问AA、AB 级别的规则。而 userB 可以访问级别 BA、BB 等。

我已在服务级别设置了安全性,因此只有某些用户可以访问 WFS,而有些用户具有只读访问权限,还有一些基于用户角色的读/写访问权限。

如果我为给定的特征类型设置层安全性,那么 WFS 根本无法访问该类型,这并不奇怪(鉴于文档)。该功能未显示在 getCapabilities/catalog/other 中。

如果重要的话,我们的地理服务器部署在 tomcat 中,可以通过 apache web 服务器后端的 mod_jk 挂载访问它。

提前感谢任何 cmets - Walter

【问题讨论】:

【参考方案1】:

您可以编写和插入自己的 ResourceAccessManager 实现,或使用 GeoFence(它提供了所述接口的实现,以及驱动您想要的 GUI 和逻辑): https://github.com/geoserver/geofence

【讨论】:

很好的回应!谢谢。我不知道地理围栏。它似乎正好有我需要的东西。

以上是关于如何根据用户角色将 geoserver WFS 服务配置为仅访问某些图层?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 OpenLayers 将属性插入 WFS?

GeoServer通过WFS对feature实现增删改查

GeoServer 开发还是使用?如何与地理服务器集成?

openlayers6结合geoserver利用WFS服务实现图层删除功能(附源码下载)

WFS-T 对 Geoserver 的调用未可视化 POI

Geoserver 和 Openlayers - 在 WFS-T 中显示详细的消息错误