休息安全¶
除了提供保护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请求方法,其中之一
GET
,POST
,PUT
,POST
,DELETE
或HEAD
role -预定义角色的名称。通配符“*用于指示将权限应用于所有用户,包括匿名用户。
备注
通常,URI模式应该解释REST路径的第一个组件
rest
或api
方法和角色列表应该 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)方法,但强制验证 POST
, PUT
或 DELETE
(写)::
/**;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