起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14652|回复: 12

X5集成CAS

  [复制链接]

12

主题

2627

帖子

2866

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2866
发表于 2014-10-16 17:26:30 | 显示全部楼层 |阅读模式
本帖最后由 hecr 于 2014-10-20 14:41 编辑

           X5CAS集成
         摘要:当前文档主要描述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.   X5UIServer部署CAS Client资源和X5CAS资源
CAS客户端casclient.jarX5cas相关的x5-cas.jar复制到%JUSTEP_HOME%\runtime\UIServer\WEB-INF\lib目录下。
3.   配置CAS FilterNTLoginFilter
修改%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映射, 即如果访问的urlparam-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的功能页面,只需要设置srcX5的功能页面,例如打开任务中心:

casclient.jar

58.42 KB, 下载次数: 2312

x5-cas.jar

4.67 KB, 下载次数: 2114

Index.java

4.63 KB, 下载次数: 870

匿名  发表于 2015-11-5 23:07:17
你好,如何集成经典门户 该如何配置   

3

主题

26

帖子

62

积分

内部用户

积分
62
发表于 2015-12-22 10:16:40 | 显示全部楼层
针对5.3版本
只需修改:
1、X5UIServer部署CAS Client资源和X5CAS资源
将最新的x5-cas.jar替换之前的x5-cas.jar。CAS客户端casclient.jar和替换后的x5-cas.jar复制到%JUSTEP_HOME%\runtime\UIServer\WEB-INF\lib目录下。
2、配置CAS FilterNTLoginFilter
修改%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/cas/serviceValidate</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映射, 即如果访问的urlparam-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>
                   <init-param>
                            <param-name>/UI2/portal/pc/index.w</param-name>
                            <param-value>/UI2/portal/pc/index.w</param-value>
                                   </init-param>
                                   <init-param>
                            <param-name>/UI2/portal/mobile/index.w</param-name>
                            <param-value>/UI2/portal/mobile/index.w</param-value>
                                   </init-param>
         </filter>
         <filter-mapping>
                   <filter-name>NTLoginFilter</filter-name>
                   <url-pattern>/*</url-pattern>
         </filter-mapping>  


注意:上述配置中红色部分必须是https。

其他配置和之前版本配置一致。
x5-cas.jar (3.22 KB, 下载次数: 454)

3

主题

26

帖子

62

积分

内部用户

积分
62
发表于 2015-12-25 11:43:50 | 显示全部楼层
对于需要过滤的页面,比如过滤手机登录页面/UI2/portal/mobile/index.w

1、修改%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/cas/serviceValidate</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>
                   <init-param>
                            <param-name>excludedPages</param-name>
                            <param-value>/UI2/portal/mobile/index.w</param-value>
                   </init-param>
         </filter>
         <filter-mapping>
                   <filter-name>CAS Filter</filter-name>
                   <url-pattern>/*</url-pattern>
         </filter-mapping>  


2、修改CAS客户端接口的class文件(反编译成java文件),添加红色部分内容
public class CASFilter implements Filter{
        private String excludedPages;   
        private String[] excludedPageArray;  
        public void init(FilterConfig config) throws ServletException{
                 excludedPages = config.getInitParameter("excludedPages");
                 if (StringUtils.isNotEmpty(excludedPages))
                {                          excludedPageArray = excludedPages.split(",");                  }
                ......
        }
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain fc) throws ServletException, IOException{
                boolean isExcludedPage = false;  
                for (String page : excludedPageArray) {//判断是否在过滤url之外  
                        if(((HttpServletRequest) request).getServletPath().equals(page)){  
                        isExcludedPage = true;  
                               break;  
                }  
                }  
                if (isExcludedPage) {//在过滤url之外  
                         fc.doFilter(request, response);  
                 } else {
                ......
                }
        }
        ......

}
3、编译java文件,重新生成jar包。


4.把/UI2/portal/base/base.js中的
this.setBsessionid(justep.Util.getCookie("bsessionid"));改为
this.setBsessionid(justep.Util.getCookie("bsessionid") || this.getContext().getRequestParameter("bsessionid"));



12

主题

53

帖子

424

积分

中级会员

Rank: 3Rank: 3

积分
424
QQ
发表于 2016-6-8 08:20:10 | 显示全部楼层
集成好帖,mark

30

主题

45

帖子

163

积分

初级会员

Rank: 2

积分
163
QQ
发表于 2016-9-20 21:09:35 | 显示全部楼层
谢谢各位大神!!
匿名  发表于 2017-2-6 13:13:43
MARK
回复

使用道具

3

主题

24

帖子

114

积分

初级会员

Rank: 2

积分
114
QQ
发表于 2017-2-6 13:14:17 | 显示全部楼层
mark
点评回复

使用道具 举报

3

主题

24

帖子

114

积分

初级会员

Rank: 2

积分
114
QQ
发表于 2017-11-9 09:29:09 | 显示全部楼层
MARK
点评回复

使用道具 举报

275

主题

1012

帖子

1695

积分

金牌会员

Rank: 6Rank: 6

积分
1695
QQ
发表于 2017-11-29 10:17:48 | 显示全部楼层
mark
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-20 08:45 , Processed in 0.070306 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表