一颗秋天的树
梦有多远,路就有多远......
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 阅读(3348) | 评论 (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)编辑 收藏

在项目开发过程中,客户往往要要将其使用的 excel 存储的数据导入到其它数据库中,下面的工作主要是将 excel 导入各种数据库的汇总
准备:在数据库中创建从 excel 要导入的表结构;

一、 excel 导入 db2 的各种方法 
1 :使用文本方式导入
1
)、将 access 导出具有标准格式符的文本文件,例如以逗号分隔的文本文件
2
)、在 db2 的命令行处理器中,连接上数据库,用 import     语句导入,语句如下:       
 import   from   table.txt   of   del   modified   by   coldel
   insert   into   table 
同理,导出命令: 
export   to   table.txt   of   del   modified   by   coldel
   select   *   from   table
2:使用csv文件 方式导入          
 1
)、把excel文件另存为table.csv文件  
2
)、在db2的命令行处理器中,连接上数据库,用import     语句导入
  import   from   "d:\table.csv"   OF   DEL   messages   "d:\msg.out"     INSERT   INTO   table

二、 excel 导入 oracle 的各种方法
1 、与 db2 导入方法相同
2 、使用 sqlldr 装载数据:
1 )、先把 Excel 另存为 .csv 格式文件,以逗号数据字段分隔的文本文件,如 table.csv
2 )、编写一个 insert.ctl ,用 sqlldr 进行导入 !
insert.ctl
内容如下:
load data
infile 'table.csv'
append into table tableName
fields terminated by ','
(field1,field2,field3,...fieldn)
3
)、执行命令: sqlldr user/password control=insert.ctl
3 、使用 PL/SQL
  如果你的单个文件不大全选 COPY , PL/SQL Developer 运行 SQL 语句 select * from table for update 或者在左侧树形菜单中选中相应的表格,点击右键,在弹出式菜单中点击 "Edit Data". 然后打开表格数据上方的锁 , 再按一下加号 , 添加一行新空行 . 鼠标点到第一个空格然后粘贴 . COMMIT 即可 .

 

posted @ 2006-11-22 14:04 sojust 阅读(3306) | 评论 (1)编辑 收藏
    梦有多远,路就有多远......