第三步 iPortal 与代理服务的 session 共享配置 |
为保证 iPortal 中的代理服务能够正常访问,管理员需对登录用户的 Cookie 信息进行存储配置,实现 iPortal 与代理服务的 session 共享,即:用户登录到 iPortal 门户后,即可访问代理服务。
iPortal 和独立部署的代理服务之间 session 共享支持 Memcached 和 Redis 两种方式,需要分别在 iPortal 安装包和服务代理安装包中进行配置。本篇介绍在 iPortal 安装包中的 session 共享配置。
关于 Memcached 的安装和启动请参见:Memcached 配置。
将代理安装包中 lib 目录下(【SuperMap iPortal Proxy 安装目录】\lib)的以下三个依赖库拷贝到 iPortal 安装包的 lib 目录下(【SuperMap iPortal 安装目录】\lib)。
<Context path="/iportal">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:127.0.0.1:11211"
sticky="false"
sessionBackupAsync="false"
lockingMode="all"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>
</Context>
iPortal 安装包和独立部署的代理安装包均依托于 Tomcat,所以可以借助 Tomcat 集群基于 Redis 的会话共享机制实现 session 共享。步骤如下:
在【SuperMap iPortal 安装目录】/bin/catalina.bat 的 set "CATALINA_HOME=%CURRENT_DIR%" 下面,增加如下内容:
set "catalina.base=%CATALINA_HOME%"
在【SuperMap iPortal 安装目录】/bin/catalina.sh 的 CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd` 下面,增加如下内容:
catalina.base="$CATALINA_HOME"
<Valve className="tomcat.request.session.redis.SessionHandlerValve" />
<Manager className="tomcat.request.session.redis.SessionManager" />
在【SuperMap iPortal 安装目录】/conf/web.xml 中配置会话过期时间。若已存在无需重复添加,只需按需修改过期时间。
<session-config>
<session-timeout>30<session-timeout>
<session-config>
请参见