能否通过REST接口配置GeoServer的密码加密方式?
操作可行性结论
该操作是可行的,官方主REST接口索引页没有单独标注该类安全配置接口,对应能力归属于GeoServer安全子系统的REST管理模块。
具体操作步骤
- 首先确认你使用的账号具备GeoServer管理员权限,所有接口请求都需要携带admin身份认证信息
- 第一步:查询当前可用的密码加密器ID列表
发送GET请求到地址{你的GeoServer服务地址}/geoserver/rest/security/passwordencoders,返回结果会列出所有支持的加密实现ID,常用的摘要加密对应ID为DigestPasswordEncoder - 第二步:修改default用户组服务的加密配置
发送PUT请求到地址{你的GeoServer服务地址}/geoserver/rest/security/usergroupservice/default,请求头设置Content-Type: application/json,请求体示例如下:
{ "userGroupService": { "id": "default", "name": "default", "className": "org.geoserver.security.xml.XMLUserGroupService", "enabled": true, "passwordEncoderName": "DigestPasswordEncoder", "passwordPolicyName": "default" } }
也可以用curl命令直接执行,示例:
curl -u admin:你的管理员密码 -X PUT -H "Content-type: application/json" -d @config.json {你的GeoServer服务地址}/geoserver/rest/security/usergroupservice/default
注意事项
- 修改加密方式前请提前备份GeoServer数据目录下的
security文件夹,避免配置错误导致无法登录后台 - 原有旧加密方式生成的用户密码不会自动转换,修改加密方式后需要重新设置所有现有用户的密码才能正常登录
内容的提问来源于stack exchange,提问作者wojja
相关产品推荐
相关产品推荐

