WeX5与CAS集成

摘要:当前文档主要描述X5作为CAS客户端实现单点登录能力。

第一步:配置CAS服务器

参考:http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/

第二步:配置CAS客户端(X5服务器)

1. 导入相应的证书至X5服务器所用的jdk中(%JUSTEP_HOME%\java\jdk\jre\lib\security)
参考:http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/

2. 在X5的UIServer部署CAS Client资源和X5的CAS资源
将CAS客户端casclient.jar和X5与cas相关的x5-cas.jar复制到%JUSTEP_HOME%\runtime\UIServer\WEB-INF\lib目录下。

3. 配置CAS Filter和NTLoginFilter
修改%JUSTEP_HOME%\runtime\UIServer\WEB-INF\web.xml中的配置,添加以下内容

      <filter>
            <filter-name>CAS Filter</filter-name>
            <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
            <init-param>
                  <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
                  <param-value>https://test-dev.justep.com:8443/cas/login</param-value>
                  </init-param>
                  <init-param>
                  <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
                  <param-value>https://test-dev.justep.com:8443 ... lt;/param-value>
                  </init-param>
                  <init-param>
                  <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
                  <param-value>192.168.1.88:8080</param-value>
                   </init-param>
         </filter>
         <filter-mapping>
                <filter-name>CAS Filter</filter-name>
                <url-pattern>/*</url-pattern>
         </filter-mapping>
         <filter>
                <filter-name>NTLoginFilter</filter-name>
                <filter-class>com.justep.filter.NTLoginFilter</filter-class>
         <!-- 以下参数表示url映射, 即如果访问的url是param-name, 将会重定向到param-value指向的页面 -->
                <init-param>
                     <param-name>/UI/portal/login.w</param-name>
                     <param-value>/portal/index.w</param-value>
                   </init-param>
                   <init-param>
                      <param-name>/UI/portal2/process/portal/login.w</param-name>
                      <param-value>/UI/portal2/process/portal/index.w</param-value>
                   </init-param>
         </filter>
         <filter-mapping>
                 <filter-name>NTLoginFilter</filter-name>
                 <url-pattern>/*</url-pattern>
         </filter-mapping>

4. 更新UI模型资源(针对5.3之前的版本)

将以下文件
/UI/portal2/process/portal/dsrc/ChangePassword.java

/UI/portal2/process/portal/dsrc/DoLogout.java

/UI/portal2/process/portal/dsrc/Index.java

中的request.getParameter(“bsessionid”)替换成NetUtils.getBSessionID(request)
修改“注销”的实现(搜索UI下使用”login.w”的js文件)

/UI/portal/system/js/portal.js
if (!window.Light.portal.logout) window.Light.portal.logout=function(){
window.location.href = "about:blank";
};

/UI/portal/x5/js/ext.js
$("#main_btn_ext").click(function(){
window.location.href = "about:blank";
});

/UI/portal2/process/portal/index.js
$("#logout").click(function(){
if (confirm("请您注意,是否打开的功能都保存了,关闭系统将导致没有保存的数据丢失!\r\r您确定要退出吗?")){
logout();
window.location.href = "about:blank";
}
});

logout: function(){
logout();
window.location.href = "about:blank";
}

将附件中的Index.java替换/UI/portal/dsrc/Index.java

5. 测试

方式一:通过X5登录系统

浏览器中输入http://localhost:8080/x5时,会自动切换到CAS的登录界面;登录成功后,后自动切换到http://localhost:8080/x5/UI/ portal2/process/portal/index.w

方式二:通过其它系统登录,在其它系统中打开X5某个功能页面

通过其它系统登录过,可以在其它系统中通过iframe或弹出对话框的方式,打开X5的功能页面,只需要设置src为X5的功能页面,例如打开任务中心:

http://x5.justep.com:8080/x5/SA/ … vity&language=zh_CN

  casclient.jar                  x5-cas.jar                          Index.java

本文由WeX5君整理,WeX5一款开源免费的html5开发工具H5 App开发就用WeX5!

阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443