之前讲的加入“群”,即对等组。都是不用认证的,只要发现了该“群”,就可以加入“群”。但是这明显是不好的,不管管理上,还是从安全,或者内容上。所以我们要给“群”加上锁,只能让有钥匙的用户进入。
日常方面我们都是使用密码来使用锁匙,在本文我也正是要讲的是使用密码来给“群”上锁,这样,以后有谁想加入该“群”,必须要有该“群”的的钥匙“密码”才行。
在这里本来打算利用一次全写完,可是考虑到,如果把所有内容一次给出,看来麻烦,而且对于理解也不太好。所以会分次给出。在这篇我只想讲讲如何通过身份认证加入“群”的过程。给出部分代码,代码也加上了必要的注释,希望大家可以看明白过程就行。
代码的实现过程,将后续慢慢发出。
在这里只要注意构造方法里程序运行的顺序,就可以看出该过程。
1、启动平台,这是JXTA必要而且是首先运行的。
2、利用netgroup创建一个特定的带有用户名和密码的对等组,也却是我们要创建的目标对等组。
3、通过发现该对等组,利用我们已经知道的用户名和密码,加入对等组。
下面秀出代码:
public class PrivateGroup {
private PeerGroup netpg = null,
spg = null,
dspg=null;
private final static PeerGroupID satellaPID = IDFactory.newPeerGroupID();
private NetworkConfigurator config = null;
public PrivateGroup(){
//启动JXTA平台
netpg = startJxta();
if(null!=netpg){
System.out.println("JXTA平台启动......");
}else{
System.err.println("启动JXTA平台失败:网络对等组为空");
System.exit(-1);//退出系统
}
//定义参数:用户,密码,对等组名称和对等组ID
String login = "PrivatePeerGroups";
String passwd = "RULE";
String groupName = "SatellaGroup";
//创建带密码身份认证的对等组
spg = createPeerGroup(netpg,groupName,login,passwd);
//加入到目标对等组中,即名称为"SatellaGroup"的对等组
if(null != spg){
System.out.println("对等组创建中......");
dspg = discoveryPeerGroup(netpg,satellaPID);//创建对等成功后,然后搜索到该对等组
if(null!=dspg){
System.out.println("对等组搜索中......");
joinPeerGroup(dspg,login,passwd);//加入目标对等组
}
}
System.out.println("加入目标对等组成功......");
}
/**
* 启动平台有多种,在这里我用了我常用的方式,通过配置和getInterface()来得到netpg
* @return
*/
private PeerGroup startJxta() {
PeerGroup group = null;
try {
config = new NetworkConfigurator();
config.setName("LoginName");
config.setPrincipal("peer");
config.setPassword("password");
config.save();
group = new NetPeerGroupFactory().getInterface();
} catch (Exception e) {
System.out.println("启动平台失败");
e.printStackTrace();
System.exit(-1);//退出系统
}
return group;
}
//加入“群”
private void joinPeerGroup(PeerGroup dspg2, String login, String passwd) {
}
//搜索到该“群”
private PeerGroup discoveryPeerGroup(PeerGroup netpg2,
PeerGroupID satellaPID2) {
return null;
}
//创建带有用户名和密码的“群”
private PeerGroup createPeerGroup(PeerGroup netpg2, String groupName,
String login, String passwd) {
return null;
}
}
上面空的方法,会在以后发出。还没学习到这里的同学,也可以自己去通过学习,自己补上。 这样应该你应该发出来,让我学习一下啦。
分享到:
相关推荐
2. **身份管理(Identity Management)**: 每个JXTA节点都有一个唯一的身份,用于认证和安全通信。在JXTA Messenger中,这确保了用户之间的聊天消息安全传输。 3. **消息传递(Message Passing)**: JXTA Messenger...
4. **身份认证与安全**:为了确保聊天内容的安全性,JXTA提供了加密和身份验证机制。聊天器可能利用这些功能来保护用户隐私,防止未经授权的访问。 5. **容错与网络动态性**:P2P网络中的节点可能会随时加入或离开...
1. **身份认证与安全性:** JXTA提供了基于证书的身份认证和加密机制,确保通信的安全性和完整性。 2. **网络路由:** P2pSocket能够处理复杂的网络拓扑,包括多跳路由,使得节点间的通信更为灵活。 3. **错误处理:...
通过使用"jxta.jar",开发者可以轻松地在应用程序中集成P2P功能,如创建和加入网络、发布和查找资源、建立通信管道等。 其次,"cms.jar"可能指的是CMS(Cryptographic Message Syntax),这是一个用于加密和签名...
- **NetPeer**:代表网络中的单个节点,处理网络连接和身份认证。 - **PipeService**:提供创建和管理管道的接口,用于设备间的通信。 - **AdvService**:用于发布、查询和接收广告,实现资源的发现和共享。 - *...
**Java P2P网络编程与JXTA技术详解** ...总之,"JXTA-Java-P2P网络编程技术书后源码"是一个宝贵的资源,它帮助开发者通过实践来学习和理解P2P网络编程和JXTA的精髓,从而能够设计和实现自己的P2P解决方案。
4. **服务接口(Service)**:JXTA支持多种服务,如身份验证、资源搜索、消息传递等。开发者可以通过定义服务接口来扩展JXTA的功能。 5. **协议栈**:JXTA协议栈包括了网络层、传输层、会话层、应用层等多个层次,...
5. **身份管理(Identity Management)**:JXTA使用数字证书来验证节点的身份,确保网络通信的安全性和可靠性。 6. **协议栈(Protocol Stack)**:JXTA提供了基于TCP/IP的底层通信协议栈,但同时也支持其他传输...
2. **JXTA协议**:JXTA提供了P2P网络的基础框架,包括对等体的发现、连接、身份验证和安全通信等功能。通过JXTA,开发者可以轻松实现P2P应用的各个组件,如数据交换、服务发布和查找。 3. **对等组与管道**:在JXTA...
5. **服务(Services)**:JXTA提供了一系列预定义的服务,如身份验证、消息传递、发现服务等,开发者也可以自定义服务以满足特定需求。 6. **协议栈(Protocol Stack)**:JXTA的协议栈包括了底层的传输层、中间的...
4. **PEER Group**:PEER组是JXTA中的一组相关节点,它们共享一套协议栈配置和一组服务。加入PEER组是节点参与网络活动的基础。 5. **Advertisements**:这是JXTA中用于描述资源和服务的数据结构,广告可以通过网络...
- **认证**:节点在加入组群之前需要通过身份验证,确保只有合法的节点才能参与通信。 - **授权**:节点之间可以设置权限控制,指定哪些节点可以访问特定资源或执行特定操作。 - **完整性保护**:使用数字签名等技术...
JXTA协议栈包含一系列基于XML的协议,用于实现P2P网络中的身份验证、服务发现、消息传递等功能。主要组件包括: - **广告(Advertisements)**:JXTA使用XML格式的广告来描述网络中的资源和服务,便于搜索和发现。 ...
JXTA使用XML来交换信息,支持多种服务,如身份验证、广告发布、流媒体传输等。 2. **P2P网络模型**:了解P2P网络的基本结构和工作原理,包括对等节点的发现、连接建立、资源搜索和数据传输。在JXTA中,节点通过发布...
6. **Chapter 03**:可能是关于JXTA网络中的身份管理和认证机制,讲解如何创建和管理对等体的身份,以及如何验证通信方的身份。 7. **Chapter 10**:可能涵盖了P2P服务的发布和订阅,以及如何在JXTA环境中实现服务...
7. **容错和可用性**: P2P网络中的节点可能会随时加入或离开,JXTA通过复制和分散数据来提高系统的可靠性和可用性。 在"录像截图"中,可能包含了JXTA实现P2P文件共享的演示或示例,帮助用户直观了解其工作流程。"可...
**JXTA身份服务** 在P2P网络中,确保安全和信任至关重要。JXTA的身份服务(Identity Service)提供了身份管理和验证功能,通过证书和数字签名等机制,确保节点间交互的安全性和可靠性。 **JXTA编程实践** 使用...
5. **JXTA网络的加入与离开**:描述了节点如何加入和离开P2P网络,以及这个过程中的身份验证和安全考量。 **第四章:JXTA服务与管道** 这一章的重点在于JXTA的服务模型和通信机制: 1. **服务发现与提供**:讨论了...
4. **安全机制**:JXTA提供了加密和身份验证机制,确保数据的安全传输和防止恶意攻击。 在P2P画板程序中,JXTA的这些特性被充分利用。例如,通过发现服务,新加入的客户端可以快速找到其他在线用户;通过发布/订阅...