开发环境:MyEclipse 10
JDK:jdk1.7
Tomcat:apache-tomcat-7.0.6
数据库:H2嵌入式数据库
下载java 实现的KIMP1.0版本的源码包和相关的jar包文件。
下载地址:http://sourceforge.net/projects/kmip4j/files/KMIP4J-V1.0/
或者:http://download.csdn.net/user/lihuayong
下载页面包含六个下载文件,分别是:
kmip4j-bin-1.0.zip:包含java实现kmip1.0协议的jar包和一些配置文件。
kmip4j-src-1.0.zip:使用java实现的kimp1.0(密钥管理互操作协议)源码。
kmip4j-src-client-gui-1.0.zip:系统的结构是基于客户机-服务器体系结构,客户端提供一个GUI程序。
kmip4j-src-simple-client-example-1.0.zip:一个非常简单的KMIP客户端。它使用KMIP4J库来创建一个请求到KLMS(密钥生命周期管理系统)。
kmip4j-src-simple-server-example-1.0.zip:kmip服务端的简单实现,一个web应用服务器程序,使用Tomcat7.0发布。
kmip4j-src-test-environment-1.0.zip:完整的测试环境源码包,包括GUI客户端、 KMIP库、 KLMS服务器等。
下载kmip4j-src-test-environment-1.0.zip文件,搭建环境所需要的文件都能在该压缩包中找到。
1 客户端搭建
将KMIPClientGUI从kmip4j-src-test-environment-1.0.zip压缩文件中复制到MyEclipse的工作空间中。直接从MyEclipse中导入KMIPClientGUI工程。
配置依赖的的jre系统库,注意是jdk1.7。
MyEclipse提示在Build Path中缺少KIMP java工程。
在Configure Build Path中删除对KMIP工程的依赖。
从kmip4j-src-test-environment-1.0.zip压缩包中,将KMIP目录下拷贝kmip4j.jar文件至KMIPClientGUI工程的libs目录下,并将此jar文件添加到Build路径。
在KMIPClientGUI工程的libs目录下创建config文件夹。
在kmip4j-src-test-environment-1.0.zip压缩包中的KMIPWebAppServer\build\classes\ch\ntb\inf\kmip\stub\config目录下,将StubConfig.xml文件拷贝到KMIPClientGUI工程的libs\config目录下。
编辑StubConfig.xml配置文件,该系统提供了2种客户端和服务端通信的方式,一种是通过IP+Port的方式,比如localhost:5555,这种方式服务端作为java应用程序启动,一种是通过http或者是https方式,比如http://localhost:8090/***/***,这种方式服务端作为web应用程序发布。以下的配置采用http方式。
修改param-name为TransportLayer对应的param-value的值为ch.ntb.inf.kmip.stub.transport.KMIPStubTransportLayerHTTP。
修改param-name为TargetHostname对应的param-value的值为http://localhost:8080/KMIPWebAppServer/KMIPServlet。注意服务器tomcat的端口是8080,如果不是,该处修改为对应的端口。
2 服务端搭建
服务端没有通过直接导入的方式,而是重新创建web工程的方式。
在Myeclipse中创建新的web project,工程名称为KMIPWebAppServer,如下图。
拷贝kmip4j-src-test-environment-1.0.zip\KMIPWebAppServer目录下KLMSDBLibs到KMIPWebAppServer工程下。
拷贝kmip4j-src-test-environment-1.0.zip\KMIPWebAppServer\src目录下的文件到KMIPWebAppServer工程下的src下。
在KMIPWebAppServer工程下创建KLMS、KLMSDB、KMIP、KMIPUtils 4个Source Folder。
拷贝kmip4j-src-test-environment-1.0.zip\KMIPWebAppServer\KLMS目录下的文件到KMIPWebAppServer工程KLMS文件夹下。
拷贝kmip4j-src-test-environment-1.0.zip\KMIPWebAppServer\KLMSDB目录下的文件到KMIPWebAppServer工程KLMSDB文件夹下。
拷贝kmip4j-src-test-environment-1.0.zip\KMIPWebAppServer\KMIP目录下的文件到KMIPWebAppServer工程KMIP文件夹下。
拷贝kmip4j-src-test-environment-1.0.zip\KMIPWebAppServer\KMIPUtils目录下的文件到KMIPWebAppServer工程KMIPUtils文件夹下。
将KLMSDBLibs目录下的所有的jar包添加到Build Path。
KMIPWebAppServer工程搭建完成,整个目录结构如下:
3 数据库安装
服务端使用H2嵌入式数据库,H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。
直接在空间中下载:http://download.csdn.net/user/lihuayong
解压H2数据库压缩包,在bin目录下,双击h2w.bat,即可启动H2数据库。启动之后,浏览器中会自动打开一个H2的网页操作界面。
直接点击页面中的Connect按钮,进入klmsdb数据库,注意JDBC URL:jdbc:h2:tcp://localhost/klmsdb
这时会在h2\bin目录下新增加两个文件,klmsdb.h2.db和klmsdb.lock.db,这是存放数据的数据库文件。
4 发布服务端
Web 应用服务器采用apache-tomcat-7.0.6。
直接在空间中下载:http://download.csdn.net/user/lihuayong
下载完成之后解压,在myeclipse中配置tomcat。
发布KMIPWebAppServer工程到tomcat。
测试发布是否成功。
测试地址:http://localhost:8080/KMIPWebAppServer/index.jsp
KMIPWebAppServer工程发布完成。
5 运行客户端和服务端
运行KMIPClientGUI工程下的KMIPClientGUI.java,该类作为GUI客户端的入口类。
客户端的界面如下:
测试客户端和服务端。在客户端的界面中,选择第一个测试用例Use Case 3.1.1 (0) - Create,该测试用例将创建一个对称密钥(symmetric key)。
在右侧会出现该用例的描述信息。
点击Process selected 按钮,运行该测试用例。
在Receive Response信息栏中会出现一个resultStatus = Success,则表示测试用例运行成功。
在浏览器的H2管理界面中点击刷新图标,刷新页面,这时可以看到密钥生命周期管理系统(KLMS)所有的表结构已经自动创建。
首次运行测试用例,服务端自动创建表结构,因为在服务端/KMIPWebAppServer/KLMSDB/META-INF/persistence.xml数据源配置文件中将参数hibernate.hbm2ddl.auto配置为create。可以参考其他资料修改为其他值,比如none,不然每次重新运行服务端,数据库都会被清空。系统当中很多表结构的主键都是使用自动增长的生成策略,如果配置不是create,每次重新启动系统的时候,数据库中就会留下上一次创建的数据,再次创建密钥的时候,主键又会重新开始生成,这样系统就会提示创建密钥失败,因为主键存在冲突。
在表中可以看到已经创建完成的16进制的密钥数据。















