如何在整个时间以编程方式在 Geoserver 上设置用户名和密码

Posted

技术标签:

【中文标题】如何在整个时间以编程方式在 Geoserver 上设置用户名和密码【英文标题】:How to programmatically set username and password on Geoserver at intall time 【发布时间】:2013-01-31 05:41:51 【问题描述】:

我正在编写一个 bash 脚本来按照此处列出的步骤安装 Geoserver Install Instructions 。我正在尝试使用 CURL 发布自定义数据存储配置文件。但是我遇到了身份验证错误。

    * upload completely sent off: 42out of 42 bytes
    < HTTP/1.1 401 Unauthorized
    < Server: Apache-Coyote/1.1
    < Set-Cookie: SPRING_SECURITY_REMEMBER_ME_COOKIE=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/geoserver
    * Authentication problem. Ignoring this.
    < WWW-Authenticate: Basic realm="GeoServer Realm"
    < Content-Type: text/html;charset=utf-8
    < Content-Length: 1299
    < Date: Thu, 31 Jan 2013 05:16:17 GMT

我相信这是因为我没有设置 Geoserver 的用户名和密码。我似乎能找到的唯一方法是通过网络管理界面来完成。我想通过我的 bash 脚本来设置它。

有没有办法做到这一点?

这里是 Bash 脚本部分

    echo 'Downdloading geoserver'
    wget http://downloads.sourceforge.net/project/geoserver/GeoServer/2.2.4/geoserver-2.2.4-war.zip

    unzip geoserver-2.2.4-war.zip
    sudo cp geoserver.war /var/lib/tomcat7/webapps/

    sleep 120

    echo 'setting up geoserver'

    curl -u $U_NAME:$PASSWORD -v -XPOST -H 'Content-type: text/xml' \
       -d '<workspace><name>catami</name></workspace>' \
       http://localhost:8080/geoserver/rest/workspaces ;

    curl -u $U_NAME:$PASSWORD -XPOST -T datastore-config.xml -H 'Content-type: text/xml' \
      http://localhost:8080/geoserver/rest/workspaces/catami/datastores ;

    curl -u $U_NAME:$PASSWORD -XPOST -H 'Content-type: text/xml' \
      -d '<featureType><name>Force_image</name></featureType>' \
      http://localhost:8080/geoserver/rest/workspaces/catami/datastores/CatamiImagePoints/featuretypes ;

    curl -u $U_NAME:$PASSWORD -XPOST -H 'Content-type: application/vnd.ogc.sld+xml' \
      -d @catami-colour-by-depth.sld http://localhost:8080/geoserver/rest/styles ;

    curl -u $U_NAME:$PASSWORD -XPUT -H 'Content-type: text/xml' \
      -d '<layer><defaultStyle><name>catami-colour-by-depth</name></defaultStyle><enabled>true</enabled></layer>' \
      http://localhost:8080/geoserver/rest/layers/catami:Force_image

【问题讨论】:

【参考方案1】:

显然,您可以在 GeoServer 数据目录中编辑用户名和密码。你可以阅读更多关于它的信息here。

在你找到要更改的文件后,你只需要sed你喜欢的那个数据。

【讨论】:

以上是关于如何在整个时间以编程方式在 Geoserver 上设置用户名和密码的主要内容,如果未能解决你的问题,请参考以下文章

Android:当布局已经包含按钮时,如何以编程方式覆盖整个布局?

如何以编程方式更改整个应用程序中的字体大小,Android?

如何以编程方式在 Android 中创建和读取 WEP/EAP WiFi 配置?

如何以编程方式确定是不是已安装 ActiveX 控件,以及它或整个 ActiveX 是不是已被禁用?

如何以编程方式在Android中编写部分字符串粗体?

JSF 2.0 在整个会话中从浏览器和以编程方式设置区域设置 [重复]