我在Ubuntu主机上的docker容器上有一个Geoserver实例。目前,对Geoserver容器的请求是通过主机的Apache网络服务器转发的。我从一个javascript网页应用程序中发出这些请求。
我想在Geoserver上保护我的一些图层。
我的问题是我如何提供适当的凭证(大概是用户名和密码)来从我的javascript应用中访问这些图层,而不在我的源代码中以普通的方式显示它们?
你可以通过使用Authkey来隐藏安全层的用户名和密码。https:/docs.geoserver.orgstableenusercommunityauthkeyindex.html。但是通过浏览器开发工具,每个人都可以看到请求的参数并重复使用authkey,因为它只是一个用户的映射,GeoServer会在第一个请求中生成一个Cookie,这个Cookie与映射用户的权限相匹配--所以任何感兴趣的人都可以使用这个authkey来完成映射用户所允许的所有事情。
唯一真正不显示authkey的解决方案是在Apache的代理服务器上添加authkey,或者更好地限制Apache上的GeoServer的请求只针对已登录的用户(如果你的应用程序在Apache上使用登录),并且只转发在你的应用程序(在Apache内)中拥有必要权限的用户对Geoserver的请求。