GeoServer服务访问权限控制

2022-10-31 16:20:53 浏览数 (1)

环境

  • 操作系统: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中自定义验证接口

注意事项

  1. geoserver服务器调用一次验证成功之后,10分钟内请求geoserver不会再去调用验证接口
  2. 关于wms服务的验证调用,因为wms服务链接会自带问号:”?” 此时如果再最后面拼接?authkey=123456那么请求验证将拿不到key值,需要将?authkey=123456放到/wms后面,如/wms?authkey=123456?service,详细见文章:GeoServer服务wms权限控制

0 人点赞