环境
- 操作系统:CentOS 7
- Tomcat版本:8.5.x
- GeoServer版本:2.21
部署方式
使用geoserver提供的war包,通过tomcat部署运行,具体部署方式略过
操作
第一步,设置身份验证器
注意
如果第二步中没有显示:AuthKey 这个,就自己去官网下载安装一个
安装方法:将下载好的压缩包中的jar包全部复制到tomcat/webapps/geoserver/WEB-INF/lib 文件夹中,然后重启tomcat服务即可
第二步,设置过滤器
修改默认
添加新的
webService URL
这种方式是通过geoserver自己去调用自定义的接口验证地址,示例代码
代码语言:javascript复制 @GetMapping("geoServerAuth")
public String geoServerAuth(@RequestParam String authkey) {
//验证key业务代码,省略,自己填补
if(1==1){
System.out.println(authkey);
//这里要根据key验证的用户信息,返回geoserver中用户对应的用户名
return "admin";
}
//身份验证不通过返回空字符串或者非用户名其他,根据自己业务返回
return "";
}
写完验证接口之后,webService RUL中就填写实际线上或者geoserver能调的通的接口地址
比如:https://www.itze.cn/controller/geoServerAuth?authkey={key}
关于使用验证
比如瓦片原来请求地址:https://127.0.0.1:8080/geoserver/gwc/service/aaa/1.0.0/123.png
添加key请求:https://127.0.0.1:8080/geoserver/gwc/service/aaa/1.0.0/123.png?authkey=123456
调用geoserver时,geoserver会先把authkey=123456这个值去请求webService RUL中自定义验证接口
注意事项
- geoserver服务器调用一次验证成功之后,10分钟内请求geoserver不会再去调用验证接口
- 关于wms服务的验证调用,因为wms服务链接会自带问号:”?” 此时如果再最后面拼接?authkey=123456那么请求验证将拿不到key值,需要将?authkey=123456放到/wms后面,如/wms?authkey=123456?service,详细见文章:GeoServer服务wms权限控制