天天看點

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("加入目标對等組成功......");

 }

 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;

 }

}

上面空的方法,會在以後發出。還沒學習到這裡的同學,也可以自己去通過學習,自己補上。 這樣應該你應該發出來,讓我學習一下啦。

繼續閱讀