`

JXTA中通过身份认证来加入“群”(一)

阅读更多

之前讲的加入“群”,即对等组。都是不用认证的,只要发现了该“群”,就可以加入“群”。但是这明显是不好的,不管管理上,还是从安全,或者内容上。所以我们要给“群”加上锁,只能让有钥匙的用户进入。

日常方面我们都是使用密码来使用锁匙,在本文我也正是要讲的是使用密码来给“群”上锁,这样,以后有谁想加入该“群”,必须要有该“群”的的钥匙“密码”才行。

在这里本来打算利用一次全写完,可是考虑到,如果把所有内容一次给出,看来麻烦,而且对于理解也不太好。所以会分次给出。在这篇我只想讲讲如何通过身份认证加入“群”的过程。给出部分代码,代码也加上了必要的注释,希望大家可以看明白过程就行。

代码的实现过程,将后续慢慢发出。

 在这里只要注意构造方法里程序运行的顺序,就可以看出该过程。

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;
 }
}
上面空的方法,会在以后发出。还没学习到这里的同学,也可以自己去通过学习,自己补上。 这样应该你应该发出来,让我学习一下啦。

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics