快速业务通道

GT4开发:从头开始进行相互的身份验证 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
所提供的 GSI 实现和支持库。构建自己的启用 GSI 的应用程序非常简单。Client 和 Server 的骨架可以分解为如下内容:

读取命令行参数 在客户机和服务器之间建立 socket 连接来传输数据 加载代理证书 建立安全上下文 如果需要,安全地交换消息 清除工作

读取命令行参数

Client 和 Server 的 main 方法需要做的第一件事也是最简单的事是读取命令行参数。

Client 需要使用两个参数:主机名和要连接的端口。

清单 1. Client 的主机名和端口// load argumentsif (args.length < 2) {System.err.println("Usage: java {options} Client "+ " {hostName} {port}");System.exit(-1);}

String hostName = args[0];int port = Integer.parseInt(args[1]);

Server 需要一个参数:监听连接使用的端口号。

清单 2. Server 端口号// read the command-line argumentsif (args.length != 1) {System.err.println("Usage: java {options} Server {localPort}");System.exit(-1);}

int localPort = Integer.parseInt(args[0]);

建立 socket 连接

Java GSS-API 为创建和解释标记(不透明的字节数据)提供了方法。这些标记包含双方之间安全交换的消息,不过实际进行标记传输的方法取决于交换双方。对于我们的目的来说,在客户机和服务器之间建立了一个 socket 连接,并使用从 socket 流和安全上下文中构造的流来交换数据。

Client 需要建立一个到 Server 的 socket 连接,并从中提取输入/输出使用的流,如下所示:

清单 3. Client 建立一个到 Server 的 socket 连接Socket socket = new Socket(hostName, port);

DataInputStream inStream = new DataInputStream(socket.getInputStream());

DataOutputStream outStream = new DataOutputStream(socket.getOutputStream());

System.out.println("Client: Connected to server " + socket.getInetAddress());

服务器应用程序创建了一个 ServerSocket 来监听这个端口,使用下面的方式给出参数:

ServerSocket ss = new ServerSocket(localPort);

ServerSocket 然后可以等待并接受一个来自客户机的连接,然后对 I/O 流进行初始化,以便以后与客户机进行数据交换。

GT4开发:从头开始进行相互的身份验证(2)

时间:2007-05-30 vampire_315 整理

清单 4. ServerSocket 等待并接受来客户机的连接Socket socket = ss.accept();

DataInputStream inStream =new DataInputStream(socket.getInputStream());

DataOutputStream outStream = new DataOutputStream(socket.getOutputStream());

System.out.println("Got connection from client "+ socket.getInetAddress());

Socket 对象用来与客户机进行通信,它可以通过 ServerSocket 继续监听其他客户机的连接请求。这通常是使用一个循环实现的,例如:

清单 5. Socket 对象与客户机进行通信while (true) {

Socket socket = ss.accept();

// Get input and output streams for the connection// Create a context with the client // Exchange messages with the client// Clean up}

这个循环一次只能处理一个客户机。然而,通过使用线程,可以对服务器进行修改,从而同时处理多个客户机。

加载代理证书

CoG Kit 是客户机的 API,它允许客户机应用程序开发人员和管理员从更高级的框架来使用、管理网格并对网格编程。CoG 提供了 API 来加载并创建代理证书和很多其他东西。例如,调用 CoGProperties.getProxyFile() 方法返回先前由 grid-proxy-init 创建的代理证书的路径。接下来,这个证书会被加载到一个字节缓冲区中,从而为 GSI 身份验证转换成一个 GSSCredential。

CoGProperties cog

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号