注册服务代理配置

发送反馈


SuperMap iPortal 提供了注册服务代理功能,方便您对注册到 iPortal 门户中的服务进行统一的权限控制;同时提供了代理服务访问统计功能,支持记录代理服务的访问次数,按服务访问次数排序等。

使用场景

如果您的门户不启用注册服务代理,会存在以下这种状况:

用户 A 注册了一个服务,并分享给用户 B,此时用户 B 知道了该服务地址。当用户 A 修改了该注册服务的共享设置后,用户 B 登录 iPortal 门户,在服务列表中看不到该条服务信息了,但之前已经知道该服务地址的事实无法改变,用户 B 仍然可以访问该服务,服务的访问权限难以控制。

管理员启用注册服务代理功能后,会隐藏原始的服务地址,只有服务的注册者和管理员可以看到原始的服务地址,其他有权限访问该服务的用户只能看到代理后的服务地址,真正在门户级别实现了对注册服务的访问控制。

注册服务代理设置

作为 iPortal 门户的管理员,可以通过以下三个步骤进行注册服务的代理设置:

  1. 管理员通过 %SuperMap iPortal_HOME%/webapps/iportal/WEB-INF 目录下的 iportal.xml 文件中的 <serviceProxy> 子节点元素,设置是否启用服务代理。详情请参见:iPortal 配置文件说明

具体示例如下所示:

<IportalConfig>
   ...
   <serviceProxy>
       <enable>false</enable>
       <port>8095</port>
       <httpConnPoolInfo>
            <maxTotal>100</maxTotal>
            <defaultMaxPerRoute>10</defaultMaxPerRoute>
      </httpConnPoolInfo>
      <!-- “代理访问统计”功能设置,默认不开启 -->
      <enableAccessStatistics>false</enableAccessStatistics>
   </serviceProxy>
</IportalConfig>

如果 iPortal 运行在双网卡或多网卡的网络环境中,希望通过不同 ip 访问 iPortal 时,注册服务代理地址会动态的显示 ip 地址,则需在以上配置的基础上,在<serviceProxy>节点下增加<proxyServerRootUrl>节点,具体配置如下:

<serviceProxy> 
    <enable>true</enable> 
    <port>8095</port> 
    <proxyServerRootUrl>http://{ProxyHost}[:port]</proxyServerRootUrl> 
    <httpConnPoolInfo> 
      <maxTotal>100</maxTotal> 
      <defaultMaxPerRoute>10</defaultMaxPerRoute> 
    </httpConnPoolInfo>
        <!-- “代理访问统计”功能设置,默认不开启 -->
        <enableAccessStatistics>false</enableAccessStatistics> 
  </serviceProxy>

其中,{ProxyHost} 是占位符,会动态显示 ip 地址,[:port] 变量表示端口,填写代理后的服务监听端口即可,例如:<proxyServerRootUrl>http://{ProxyHost}:8095</proxyServerRootUrl>

  1. 在 iportal.xml 文件中配置启用代理服务后,您还需要在 %SuperMap iPortal_HOME% 目录下新建一个空文件夹,例如:取名为“webapp” ,然后将  %SuperMap iPortal_HOME%\webapps 目录下的 iportal 文件夹剪切到刚刚新建的 “webapp" 空文件夹中。下面需要将 iportal 这个应用的 “Context path” 的值设置为空,代理服务功能才能生效。设置完成后, iPortal 门户首页地址变更为: http://<server>:<port>。具体设置如下:

配置 server.xml 文件(位于 %SuperMap iPortal_HOME%\conf 目录下),在 <Host> 节点下增加<Context>节点,设置 path 属性如下,保存并重启 iPortal 服务。

<Host ...>
<Context path="" docBase="../webapp/iportal"/>
</Host>
  1. 除以上配置外,还需将 %SuperMap iPortal_HOME%\conf\Catalina\localhost 目录下的所有 iportal#*.xml 文件重命名,去掉文件名中的“iportal#”。此外,还需修改 %SuperMap iPortal_HOME%\bin 目录下的两个 passwordreset.bat/passwordreset.sh 文件,将文件中的“webapps”目录名修改为上面第2步中新建的“webapp”目录名,这两个文件主要用来处理用户忘记系统初始化时的管理员账户密码问题,具体请参见:FAQ

注意

代理服务访问统计配置

iPortal 启用注册服务代理功能后,还支持对代理服务进行访问统计,记录代理服务的访问次数。管理员通过 iportal.xml 配置文件中的 <enableAccessStatistics> 子节点元素,设置是否开启代理服务访问统计功能。详情请参见:iPortal 配置文件说明

<IportalConfig>
   ...
   <serviceProxy>
       <enable>true</enable>
       ...
      <!-- “代理访问统计”功能设置,默认不开启 -->
      <enableAccessStatistics>false</enableAccessStatistics>
   </serviceProxy>
</IportalConfig>