关闭GeoServer v2.13权限认证

写在前面:

所用geoserver 版本为 2.13.2, tomcat 8,jdk 64位环境

问题产生的背景:使用 geoserver 发布wmts服务,用arcgis for js 4.x 版的 WebTileLayer 类加载,在网页端弹出输入用户名和密码的提示框,如下图:

按照提示输入登陆geoserver的用户名和密码即可显示请求的数据,但在实际使用过程中,不可能要求地图服务使用者每次请求数据时,都输入可访问该资源的geoserver用户名和密码。

心路历程(重解决问题的,请略过):有问题,找度娘,问了度娘半天,始终也没有找到合适的方法,于是静下心来,仔细思考:通过网页请求单张图片,没有其他多余的请求,为什么还要输入geoserver的用户名和密码,于是我猜想,很可能是geoserver的过滤器或拦截器,拦截了请求,按照这个思路,我想是否可以关闭geoserver请求的过滤器或拦截器,达到请求wmts服务时,不再拦截,于是,继续问度娘,找到这篇文章:https://www.jianshu.com/p/8ef9bfdd5ef2,由于这篇文章的启发,开始寻找关闭权限认证的方法,不料也没找到,没办法,还得靠自己。想到 geoserver 的权限设置管理部分在管理界面的security部分,于是对每一项都进行了查看,看了几遍,没看出什么名堂,没有理解Authentication页面内的Authentication Filters、Filter Chains和Filter chain testing等部分具体内容,就开始对可点击和设置的内容进行测试,再次看到Filter chain testing时,突然想到是否可以测试一下请求单张图片的wmts地址,不管了,先测再说,经测试,发现在Responsible chain标签下的文本框出到了default,和上面Filter Chains表中的name列的最后一项一致,难道是……,此处略过100字,哈哈,闲言少叙,回归正题。

解决方法

1、关闭请求过滤

经过测试,该方法可行,但不安全,第一步找到要关闭过虑项,如下图:

点击右侧过滤项的名称,打开下图,勾选 Disable security for this chain 复选框:

之后,单击该页面的close按钮,返回 Authentication 页面,之后,再依次设置其他过滤项,都设置完之后,单击Authentication 页面的保存按钮,即可达到关闭过滤器的目的,再测试请求wmts服务的链接,没有再弹出用户名和密码的弹出框。

2、在请求wmts服务之前,先登陆geoserver服务器

该方法还没有测试,不过应该可以实现,通过阅读geoserver的帮助文档,geoserver服务器可以通过Basic Authentication request 进行验证,所以,测试成功后,再补充

 各们亲,have fun

原文地址:https://www.cnblogs.com/gregcn/p/9487973.html