一颗秋天的树
梦有多远,路就有多远......
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 阅读(3342) | 评论 (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 阅读(1768) | 评论 (1)编辑 收藏
     摘要: 1.   log4j 的配置文件 Log4j 支持两种配置文件格式,一种是 XML 格式的文件,一种是 Java 特性文件 lg4j.properties (键 = 值)。 ...  阅读全文
posted @ 2007-03-30 21:51 sojust 阅读(1199) | 评论 (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 阅读(3740) | 评论 (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 阅读(3292) | 评论 (1)编辑 收藏
     摘要: 好久没写东西了。最近无聊,发点上来!用ajax首先先写一个调用的function一、ajaxFuntion.js   // 定义XMLHttpRequest对象实例 var http_request  =   false ...  阅读全文
posted @ 2006-11-09 15:25 sojust 阅读(665) | 评论 (0)编辑 收藏
常用的web server JNDI配置方法,以db2为例
一、tomcat部分
1、jndi配置

1.1、5.0版本的jndi配置
<?xml version='1.0' encoding='utf-8'?>
<Context displayName="DS" docBase="ROOT" path="/" workDir="work\Catalina\localhost\ROOT">
 <Resource name="DS" type="javax.sql.DataSource"/> 
 <ResourceParams name="DS">
    <parameter>
      <name>url</name>
      <value>jdbc:db2://127.0.0.1:50000/DateBase</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>com.ibm.db2.jcc.DB2Driver</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>username</value>
    </parameter>
   <parameter>
      <name>password</name>
      <value>password</value>
    </parameter>
    <parameter>
      <name>maxWait</name>
      <value>5000</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>500</value>
    </parameter>
     <parameter>
      <name>maxIdle</name>
      <value>100</value>
    </parameter>
  </ResourceParams>
</Context>

1.2、5.5.x版本的jndi配置

<?xml version='1.0' encoding='utf-8'?>
<Context displayName="DS" docBase="ROOT" path="/ROOT" workDir="work\Catalina\localhost\ROOT">
  <Resource name="DS" auth="Container" type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="10000"
              driverClassName="com.ibm.db2.jcc.DB2Driver"
              username="username" password="password"
              url="jdbc:db2://127.0.0.1:50000/DateBase"
              defaultAutoCommit="true" removeAbandoned="true"
              removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>

* 说明:
   1、本例通过jcc方式联接db2
   2、5.0以下版本和5.0以上版本对jndi的配置方法不同,5.0以上版本将其变成属性进行配置!

2、spring的配置:

  <bean id="dao" class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiName">
     <value>java:comp/env/DS</value>
   </property>
  </bean>


二、jboss部分

1、将docs\examples\jca下的数据库配置烤至 \server\default\deploy下
如db2的数据源配置db2-ds.xml放至\server\default\deploy下更改

    <jndi-name>DS</jndi-name>
    <connection-url>jdbc:db2://127.0.0.1:50000/DateBase</connection-url>
    <driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>
    <user-name>username</user-name>
    <password>password</password>

2、spring的配置:

  <bean id="dao" class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiName">
     <value>java:DS</value>
   </property>
  </bean>

三、weblogic部分
1、jndi配置可以启动weblogic的console进行配置
     打开    http://127.0.0.1:7001/console  

按顺序点击Services ->JDBC ->Connection Pools,然后在右框架中点击链接Configure a new JDBC Connection Pool... ,创建一个新的Pools,从下拉框中选择数据库为informix,再选择驱动,如下图所示:
  (麻烦!,以后补上)

点击continue跳到如下详细登记页面,填写相应的字段信息:

Name JNDI 名称;

DataBase Name:数据库名称;

Host Name:主机名称;

Port     端口号;

DataBase User Name:数据库用户名;

PassWord: 连接密码;

Confirm PassWord:确认密码;

Informix Server:服务名称;

点击Continue,如下图所示:

再点Test Driver Configuration 测试通过

点击创建和布署(Create and deploy)按钮,成功完成;

   

2、spring的配置同样不需要前缀
  <bean id="dao" class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiName">
     <value>java:DS</value>
   </property>
  </bean>

四、websphere部分
(因websphere被我删除,所以以后补上,:))



 
posted @ 2006-09-28 14:04 sojust 阅读(3012) | 评论 (1)编辑 收藏

一、windows下查找数据库服务名及端口号

1 打开windows系统下\system32\drivers\etc目录

2 打开文件services

在其文件中并可查找到informix所建立库的服务名称及端口号如:fx_server 9998/tcp  #fx_server

posted @ 2006-09-12 23:31 sojust 阅读(197) | 评论 (0)编辑 收藏

问题分析:
    在编辑 java 文件或运行 web 时会遇到 Unsupported major.minor version 49.0 异常, 48 49 Java 编译器内部的版本号, 48 表示是用 JDK1.4 来编译运行程序, 49 表示是用 JDK 编译运行程序,报错的原因是运行的 JDK 与编译时的 JDK 版本不同!编译时使用 1.5, 运行使用 1.4
查找原因 一:
开发环境下
JDK tools.jar 的版本和 web 布署的的版本不同引起的:
1
、以 tomcat 为例,查找到 tomcat 安装目录下的 common\lib\tools.jar ,用压缩软件打开,察看 META-INF\MANIFEST.MF ,内容如下:
Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
可知其版本为 1.5.0

2 、找到开发环境 jdk 的目录下的版本号
dos
命令行中 下运行 java -version 查看版本号,或在配置中找到起作用的那个安装 JDK 目录下,查找 lib\tools.jar ,打开察看 META-INF\MANIFEST.MF 内容否  Created-By: 1.4.2 (Sun Microsystems Inc.)
如果两个版本不同,则抛出如上异常

查找原因 二:
编译环境的问题
如果使用 Eclipse+MyEclipse 开发环境,在以上条件都配置正确的基础上查看 eclipse 使用的 JDK 编译版本。

解决方法分以下三种方式:

1、 JDK 下的下的 tools.jar 覆盖到 tomcat\common\lib 下的 tools.jar ,使 tomcat 发布的版本与 JDK 一致;

2、 配置安装 JDK ,使 JDK 版本与 tomcat 本身使用的 JDK 的版本号一至,如修改 JAVA_HOME,PATH,CLASSPATH,Tomcat 使用的 JDK 设置为当前的 tomcat 使用的版本号

3、 如以上方法都设置正确,系统任无法运行,则设置 eclipse 编译设定方法: Windows->Preferance->Java->Compiler-> 页面。将 ..JDK Compliance level->Compiler compliance level 调成 1.4 。系统将自动编译成1 .4


说明:
1、使用 JDK5.0 ,要求 Tomcat 版本必须不能低于 5.5* ,如果我需要用低于 5.5* 版本的 Tomcat ,将 JDK5.0 lib 目录下的 tools.jar 覆盖 TOMCAT 安装目录 /common/lib 下面的 tools.jar, 然后重启 TOMCAT5.0 就可以了

2、如果你选择的是 Eclipse+MyEclipse 开发环境 , 并且你选择的是在 Eclipse 下启动 Tomcat, 要在 windows 菜单 preference 选项弹出的 perference 对话框中 , 选择 MyEclipse--Application Server--Tomcat5---JDK 指定 JDK 的版本号为当前使用的版本号!

posted @ 2006-09-10 23:11 sojust 阅读(5194) | 评论 (1)编辑 收藏

目的:在 web 中调用 bat 处理数据库
工具: Tomcat ,db2
步骤:
1 、编写 bat 方法处理数据库
run.bat :

db2cmd db2run.bat   %   1

说明: %1 为传入的一个参数
db2run.bat :

db2 connect to database user user using password 

说明: db2run.bat 中对数据库进行操作,例中为根据条件创建一视图, 将 bat 放至 Tomcat\bin 下以便程序调用
2 、编写 java 方法调用 run.bat

        public     void   runBat(String parm)   {
         String command 
=   "  run.bat   "   +  parm;
         
try      {
            Process child  
=   Runtime.getRuntime().exec(command);
              }
 
         
catch   (Exception ex)
          
{
            ex.printStackTrace();
             }
     
    }
 

说明: parm 为传入 bat 的参数,子线 程调用此批处理

posted @ 2006-09-01 10:30 sojust 阅读(619) | 评论 (0)编辑 收藏
仅列出标题  下一页
    梦有多远,路就有多远......