ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用Harmony运行WAS CE

使用Harmony运行WAS CE

原创 Linux操作系统 作者:daition 时间:2009-05-18 22:31:55 0 删除 编辑
1         简介

Apache Harmony是Apache软件基金会下,一个Sun Java标准(J2SE)的开源项目。Harmony项目宣布于2005年,在Apache许可证第二版下,开发了基于Sun的Java标准的Java虚拟机(JVM)和Java类库。 Harmony也已经包含了Intel所贡献的大量代码,包括Swing,AWT和Java 2D. 它在2006的十月份开始成为Apache的顶级项目(Top Project),并获得了IBM公司的巨大支持。Harmony的最大特色在于其模块化的类库。用户可以根据实际需要,裁减某些类库,从而在达到精简JDK的目的。

2        WAS CE简介

WAS CE是基于Geronimo的免费JEE应用程序服务器。照惯例,每三个月便会有新版本发布。Geronimo是Apache软件基金会下,一个遵循JEE标准的开源项目。在Apache许可证第二版下,开发了可定制的JEE应用服务器。Geronimo使用了基于插件(plug-in)的构架。这种构架使得用户可以根据需要选择所需的JEE插件,从而精简JEE应用服务器的大小。相比一般JEE应用服务器,Geronimo具有很大灵活性。WAS CE则继承了Geronimo的这些优点。

3         使用Harmony运行WAS CE

使用Harmony运行WAS CE需要对WAS CE的配置进行修改。WAS CE的主要配置文件是config.xml,位于“/var/config/”。在修改该文件之前,强烈建议备份该文件。

 

对config.xml的修改包括三项内容:配置JNDI提供者、使用传输层安全协议替代安全套接层以及修改密钥库类型。

 

3.1        配置JNDI提供者(JNDI Provider)

Harmony的JNDI提供者与Sun JD不同,因此需要指定Harmony JDK的JNDI提供者,使WAS CE可以访问Harmony的JNDI提供者。具体步骤如下:

1)       打开config.xml

2)       搜索名为“NamingProperties”的Gbean

3)       将该Gbean属性修改为:

org.apache.harmony.jndi.provider

rmi://${ServerHostname}:${NamingPort + PortOffset}

3.2         使用TLS(Transport Layer Security)替代SSL(Secure Sockets Layer)

TLS是传输层安全协议,而SSL是安全套接层。Harmony并没有提供SSL的实现,而WAS CE缺省使用SSL为CORBA提供加密解密相关的安全支持。但是这并不影响使用Harmony来运行WAS CE。可以指定WAS CE使用TLS带替代SSL。步骤如下:

1)     打开config.xml

2)     搜索“j2ee-corba-yoko”,将protocol属性值从“SSL”修改为“TLS”。

name="org.apache.geronimo.configs/j2ee-corba-yoko/2.1-SNAPSHOT/car">

attribute name="protocol">TLS

……

3)     搜索名为“TomcatWebSSLConnector”的Gbean,将“sslProtocol”属性值从“SSL”修改为“TLS”。

……

            TLS

……

3.3         修改密钥库类型(Keystore Type)

顾名思义,密钥库用于存放密钥。Geronimo缺省使用JKS(Java Keystore Standard),提供者为Sun,Sun JDK中都含有JKS实现。但是,Harmony只支持PKCS12 (Public Keystore Cryptography Standard)与BKS(Bouncy Castle Keystore)。其中,PKCS12是基于RSA的,描述个人信息的交换语法标准;而BKS则可以被认为是Bouncy Castle版本的JKS,可以与JKS互操作。

 

为了将生成PKCS12密钥库,需要编写程序将JKS密钥库转换成PKCS12类型;如果需要BKS密钥库,可以再通过程序将PKCS12密钥库转换成BKS类型。前者需要使用Sun JDK运行;后者必须使用Harmony JDK运行。因为,Sun JDK同时支持JKS与PKCS12,而不支持BKS;Harmony JDK支持PKCS12与BKS,而不支持JKS。此处需要将/var/security/keystores/geronimo-default转换成Harmony支持的Keystore类型即可。转换程序可以参考个人空间中“下载”列表的KeystoreConvert附件。

 

本文将以以PKCS12为例,说明修改Geronimo所用密钥库类型的步骤。假设生成PKCS12密钥库文件为g.pkcs12。修改步骤如下:

1) 打开config.xml

2) 将g.pkcs12拷贝至/var/security/keystores/Geronimo-default

3) 搜索“server-security-config”,为其添加名为“geronimo-default”的Gbean:

name="org.apache.geronimo.framework/server-security-config/2.1-SNAPSHOT/car">

var/security/keystores/g.pkcs12

PKCS12

 

除此之外,还要对名为“TomcatWebSSLConnector”的Gbean属性进行修改。如下所示:

……

TLS

var/security/keystores/g.pkcs12

secret

PKCS12

 

完成了以上三处对config.xml的修改,就可以用Harmony运行WAS CE了。

 

4         启动WAS CE

使用Harmony JDK启动WAS CE的步骤如下:

1) 设置环境变量JAVA_HOME为Harmony JDK的所在路径

2) 将JAVA_HOME/bin添加至环境变量PATH中

3) 运行WAS CE启动脚本

5         总结

本文归纳了使用Harmony运行WAS CE的步骤,说明了需要对WAS CE配置文件config.xml进行的修改,并给出了原因。在此基础上,可以考虑利用Harmony及WAS CE的可定制特点,制作出精简的WAS CE+Harmony运行包。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7389114/viewspace-600361/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-05-18

  • 博文量
    2
  • 访问量
    4138