一颗秋天的树
梦有多远,路就有多远......
posts - 15,comments - 20,trackbacks - 0
     摘要:  最近做了个sso项目,将工作在遇到的问题整理了几个pdf,可惜传不上来,只有帖过来了!  目  录 1. 开发说明 - 3 - 1.1. 开发目的 - 3 - 1.2. 预期读者 - 3 - 1.3. 开发资源 -&n...  阅读全文
posted @ 2008-01-07 18:22 sojust 阅读(3349) | 评论 (10)编辑 收藏
Lieferay和web项目中整合Liferay CAS server建立SSO,针对4.3版本进行如下操作
1、设置CAS server
首先下载cas-server WAR包,并将cas-web.war文件放入Tomcat's webapps目录下
编辑 tomcat 下的server.xml
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads
="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups
="false" disableUploadTimeout="true"
acceptCount
="100" scheme="https" secure="true"
clientAuth
="false" sslProtocol="TLS" />

2、设置CAS client
下载cas-client-2.0.11,放至lib下
3、设置数字签名
在java环境中用使用keytool 进行设置

D:\Java\jdk1.5\bin>keytool -genkey -alias tomcat -keypass changeit -keyalg RSA
输入keystore密码:  changeit
您的名字与姓氏是什么?
  [Unknown]:  localhost
您的组织单位名称是什么?
  [Unknown]:
您的组织名称是什么?
  [Unknown]:
您所在的城市或区域名称是什么?
  [Unknown]:
您所在的州或省份名称是什么?
  [Unknown]:
该单位的两字母国家代码是什么
  [Unknown]:
CN
=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 正确吗?
  [否]:  y

keytool -export -alias tomcat -keypass changeit -file %FILE_NAME%
keytool -import -alias tomcat -file %FILE_NAME% -keypass changeit -keystore %JAVA_HOME%/jre/lib/security/cacerts

 

D:\Java\jdk1.5\bin>keytool -export -alias tomcat -keypass changeit -file c:/server.cart
输入keystore密码:  changeit
保存在文件中的认证 
<c:/server.cart>

D:\Java\jdk1.
5\bin>keytool -import -alias tomcat -file c:/server.cart -keypass changeit -keystore c:/cacerts
输入keystore密码:  changeit
Owner: CN
=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
发照者: CN
=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序号: 46d28617
有效期间: Mon Aug 
27 16:06:47 CST 2007 至: Sun Nov 25 16:06:47 CST 2007
认证指纹:
         MD5:  0E:
27:55:74:D0:56:E8:39:B8:0D:58:1E:69:7B:C6:C5
         SHA1: AD:7F:
90:87:2B:18:99:07:DE:A6:A8:78:90:9F:86:CB:18:A8:67:03
信任这个认证? [否]:  y
认证已添加至keystore中



4、设置Liferay Portal

<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://localhost:8443/cas-web/login</param-value> 
   </init-param> 
   
<init-param> 
      
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> 
      
<param-value>https://localhost:8443/cas-web/proxyValidate</param-value> 
   </init-param> 
   
<init-param> 
      
<param-name>edu.yale.its.tp.cas.client.filter.serviceUrl</param-name> 
      
<param-value>http://localhost:8080/c/portal/login</param-value> 
   </init-param> 
</filter>


5、test SSO

相关问题汇总:

http://wiki.liferay.com/index.php/Single_SignOn_-_Integrating_Liferay_With_CAS_Server#Instructions_for_Liferay_4.2

posted @ 2007-08-27 16:35 sojust 阅读(1779) | 评论 (1)编辑 收藏
     摘要: 1.   log4j 的配置文件 Log4j 支持两种配置文件格式,一种是 XML 格式的文件,一种是 Java 特性文件 lg4j.properties (键 = 值)。 ...  阅读全文
posted @ 2007-03-30 21:51 sojust 阅读(1205) | 评论 (4)编辑 收藏

使用Runtime调用bat文件处理外部角本时一般使用 Runtime.getRuntime.exec(command)就可以了
如果批处理是使用db2的db2cmd时,dos窗口则会弹出db2命令窗口执行相关的处理角本,如果需要等特此批处理命令执行完成后再执行下面的流程就会出现相应的问题,如下例流程,将客户端将生成数据备份文件上传至服务器

{47BE8604-7CE8-4B36-8C17-B0B98C125E2C}.BMP

因waitFor() 只能控制第一个dos窗口的进程,而无法控制下一个窗口,程序则会同步执行,当数据还没生成时就已经进行压缩处理了,当然会出现错误。
所以在执行批处理时将批出理文件隐式执行

实施方法代码如下

     /**
     * 执行批处理
     * 
@param  command
     
*/

    
public   void  runBat(String command) {
            Process child 
=   null ;
            
try   {
                      Runtime rt
=  Runtime.getRuntime();
                     child
= rt.exec(command);
                        //以下代码为控制台输出相关的批出理
                      String line 
=   null ;
                      BufferedReader reader 
=   new  BufferedReader( new  InputStreamReader(child.getInputStream()));
                      
while ((line  =  reader.readLine())  !=   null )
                      
{
                          System.out.println(line);
                      }

                      reader.close();
                     
// 等待刚刚执行的命令的结束 
 
                  while  ( true )
                        
if (child.waitFor()  ==   0 break ;
                    }
      
            }

            
catch  (Exception ex) {
                   child.destroy();
                ex.printStackTrace();
            }

        }

主程序如下:

public   void  exportBat(String zipPath) {
         
// 执行批处是导出到目录下
           this .runBat( " db2cmd -c -w -i exportdb.bat " );
         
// 压缩文件生成打包
            this.doZip(zipPath ,zipPath +" \\test .rar" ); 
         
  // 上传
          this .ftpUp("目录");
         
// 删除客户端目录生成的文件
          this .delFile(zipPath );
    }
说明:
1、runBat中执行db2cmd时需加上-c -w -i script 
2、dozip,ftpUp,delFile方法省略...
posted @ 2007-01-18 21:28 sojust 阅读(3751) | 评论 (2)编辑 收藏
    梦有多远,路就有多远......