休息安全

除了提供保护OWS风格服务的能力之外,geoserver还支持保护RESTful服务。

与层和服务安全一样,RESTful安全配置基于 security_roles .请求URI到角色的映射在名为 rest.properties ,位于 security 地理服务器数据目录的目录。

句法

以下语法定义了RESTful服务的访问控制规则(括号[]中的参数是可选的)::

uriPattern;method[,method,...]=role[,role,...]

参数为:

  • 尿样 -:ref:`ant pattern<security_rest_ant_patterns>`匹配一组请求URI

  • 方法 -HTTP请求方法,其中之一 GETPOSTPUTPOSTDELETEHEAD

  • role -预定义角色的名称。通配符“*用于指示将权限应用于所有用户,包括匿名用户。

备注

  • 通常,URI模式应该解释REST路径的第一个组件 restapi

  • 方法和角色列表应该 not 包含任何空格

蚂蚁图案

Ant模式通常用于模式匹配目录和文件路径。这个 examples 部分包含一些基本说明。阿帕奇蚂蚁 user manual 包含更复杂的用例。

实例

本节中的大多数示例都是特定于geoserver的 REST 但是,任何restful geoserver服务都可以以相同的方式配置。

只允许经过身份验证的访问

最安全的配置是强制对任何请求进行身份验证的配置。以下示例锁定了对所有请求的访问:

/**;GET,POST,PUT,DELETE=ROLE_ADMINISTRATOR

限制较少的配置会锁定对路径下操作的访问 /rest ,但允许匿名访问位于其他路径下的请求(例如 /api ):

/rest/**;GET,POST,PUT,DELETE=ROLE_ADMINISTRATOR

以下配置与前一个配置类似,只是它授予对特定角色(而不是管理员)的访问权限:

/**;GET,POST,PUT,DELETE=ROLE_TRUSTED

ROLE_TRUSTED 是在中定义的角色 users.properties .

提供匿名只读访问

以下配置允许匿名访问 GET 使用了(read)方法,但强制验证 POSTPUTDELETE (写)::

/**;GET=IS_AUTHENTICATED_ANONYMOUSLY
/**;POST,PUT,DELETE=TRUSTED_ROLE

保护特定资源

以下配置强制对特定资源(在本例中是功能类型)的访问进行身份验证:

/rest/**/states*;GET=TRUSTED_ROLE
/rest/**;POST,PUT,DELETE=TRUSTED_ROLE

以下是对一组资源(在本例中是所有数据存储)的安全访问:

/rest/**/datastores/*;GET=TRUSTED_ROLE
/rest/**/datastores/*.*;GET=TRUSTED_ROLE
/rest/**;POST,PUT,DELETE=TRUSTED_ROLE
Previous: 层安全性
Next: URL检查