确保 Apache Tomcat 中 ArcGIS Spatial Data Server 服务管理 URL 的安全性

您可以更改 server.xml、tomcat-users.xml 和 web.xml Apache Tomcat 文件,从而使特定用户能够通过 ArcGIS Spatial Data Server URL 管理和查看服务。

提示提示:

此外,在生产环境中,应始终使用安全套接字层 (SSL) 或站点的连接。有关相关配置的信息,请参阅 Apache Tomcat 文档。

请注意,无法根据用户和角色对空间数据服务器站点内运行的整个服务目录进行过滤;它们将对浏览目录的所有人可见。

如果对站点配置了 Tomcat 身份验证,则用户在首次浏览至安全空间数据服务器实例的管理 URL 或安全服务 URL 时,会显示一个对话框,用户必须提供用户名和密码才能进行访问。提供正确的凭证后,用户在整个 Web 会话期间内都可以浏览至所有 URL。

可为 Tomcat 设置多种不同的身份验证方法,设置时使用的是 web.xml 文件中的 auth-method 标签。有关如何实现这些方法的信息,请参阅 Tomcat 的文档。

更改 server.xml

要启用 Tomcat 实例的安全性范围,请在 $CATALINA_HOME/conf/server.xml 文件中的 Engine、Host 或 Context 容器内添加 Realm 嵌套组件。

在此示例中,通过 MemoryRealm 启用了 Tomcat 的默认范围:

<Realm className="org.apache.catalina.realm.MemoryRealm" />

MemoryRealm 应仅用于开发 Web 应用程序。还有其他 Realm 实现可用于生产 Web 应用程序。有关范围配置的详细信息,请参阅 Tomcat 文档。

更改 tomcat-users.xml

添加用于声明角色的条目以及参与这些角色的用户。

以下示例中定义了两个角色和三个用户,并将用户分配到这些角色中:

<role rolename="tomcat"/>
 <role rolename="role1"/>
 <user username="tomcatu" password="TCyoosir" roles="tomcat"/>
 <user username="superu" password="2$3cr3t" roles="tomcat,role1"/>
 <user username="user1" password="Y00zR0n3" roles="role1"/>

更改 web.xml

ArcGIS 10.1 Spatial Data Server for Java 以 Web 应用程序存档 (war)(即 arcgis.war)的形式进行安装。arcgis.war 是一个 Java 存档 (.jar) 文件,用于分发一组 JavaServer Pages、Java Servlets、Java 类、XML 文件、静态 HTML 网页以及与之共同构成 Web 应用程序的其他文件。

web.xml 文件是 arcgis.war 文件的一部分。要更改 web.xml 文件,必须执行以下操作:解压缩 war 文件,编辑 web.xml,然后重新打包 war 文件。安装 JDK,以便提取和重新打包 war 文件。

步骤:
  1. 创建 arcgis.war 文件的备份副本。

    在 $CATALINA_HOME 外的目录中存储备份副本。

  2. 提取(解压缩)arcgis.war 文件。
  3. 向 web.xml 文件添加安全性限制元素和子元素。

    在以下示例中,系统会提示浏览至空间数据服务器的 /admin/* url 的用户提供用户名和密码。用户必须提供添加到 tomcat-users.xml 文件中 tomcat 角色的两个用户中某一位用户的凭证。对于本示例,在建立从 ArcGIS for Desktop 到空间数据服务器的管理或发布连接时,必须提供 tomcatu 或 superu 用户的用户名和密码。

    <security-constraint>
       <display-name>Restricted GET and POST To tomcat users of ADMIN</display-name>
       <web-resource-collection>
          <web-resource-name>Restricted Access - Get Only</web-resource-name>
          <url-pattern>/admin/*</url-pattern>
          <http-method>GET</http-method>
    	<http-method>POST</http-method>
       </web-resource-collection>
       <auth-constraint>
          <role-name>tomcat</role-name>
       </auth-constraint>
       <user-data-constraint>
          <transport-guarantee>NONE</transport-guarantee>
       </user-data-constraint>
    </security-constraint>
     <login-config>
      <auth-method>DIGEST</auth-method>
      <realm-name>default</realm-name>
    </login-config>
    

    在以上示例中,DIGEST 身份验证方法通过 <auth-method> 嵌套组件指定。可用该子元素指定的身份验证方法还包括 BASIC 或 FORM,但是这些方法会以明文形式发送密码。

  4. 保存并关闭 web.xml 文件。
  5. 重新打包 arcgis.war 文件。

    必须将该文件命名为 arcgis.war。

重新启动 Tomcat

更改了所有 xml 文件后,请执行以下操作:

步骤:
  1. 停止 Tomcat 服务器。
  2. 删除 Tomcat 服务器缓存文件。

    这些文件位于 $CATALINA_HOME/work 或 $CATALINA_HOME/temp 中。您可以删除这些目录下的所有目录和文件。

  3. 将已更改的 arcgis.war 文件复制到目录 $CATALINA_HOME/webapps/ 中。
  4. 重新启动 Tomcat。
9/15/2013