GT4开发:从头开始进行相互的身份验证 - 编程入门网
所提供的 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |