注册服务代理配置 |
SuperMap iPortal 提供了注册服务代理功能,方便您对注册到 iPortal 门户中的服务进行统一的权限控制;同时提供了代理服务访问统计功能,支持记录代理服务的访问次数,按服务访问次数排序等。
如果您的门户不启用注册服务代理,会存在以下这种状况:
用户 A 注册了一个服务,并分享给用户 B,此时用户 B 知道了该服务地址。当用户 A 修改了该注册服务的共享设置后,用户 B 登录 iPortal 门户,在服务列表中看不到该条服务信息了,但之前已经知道该服务地址的事实无法改变,用户 B 仍然可以访问该服务,服务的访问权限难以控制。
管理员启用注册服务代理功能后,会隐藏原始的服务地址,只有服务的注册者和管理员可以看到原始的服务地址,其他有权限访问该服务的用户只能看到代理后的服务地址,真正在门户级别实现了对注册服务的访问控制。
作为 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>
配置 server.xml 文件(位于 %SuperMap iPortal_HOME%\conf 目录下),在 <Host> 节点下增加<Context>节点,设置 path 属性如下,保存并重启 iPortal 服务。
<Host ...> <Context path="" docBase="../webapp/iportal"/> </Host>
注意:
iPortal 启用注册服务代理功能后,还支持对代理服务进行访问统计,记录代理服务的访问次数。管理员通过 iportal.xml 配置文件中的 <enableAccessStatistics> 子节点元素,设置是否开启代理服务访问统计功能。详情请参见:iPortal 配置文件说明。
<IportalConfig> ... <serviceProxy> <enable>true</enable> ... <!-- “代理访问统计”功能设置,默认不开启 --> <enableAccessStatistics>false</enableAccessStatistics> </serviceProxy> </IportalConfig>