Sfoglia il codice sorgente

[add] SecureManger 의존성 주입과 RM 받을시 키등록 가능하도록 구현, 로그 메세지 색입혀서 보기 편하게 기능 추가

master
kidjung 4 anni fa
parent
commit
66556ab2ba

+ 11
- 5
src/broker/modules/init.go Vedi File

11
 	"net/rpc"
11
 	"net/rpc"
12
 )
12
 )
13
 
13
 
14
-// TODO: RM 처리와 init.go 전반적으로 DI 이용하여 구현
14
+// TODO: RM 처리와 init.go 전반적으로 DI 이용하여 구현 RM 키등록 부분 구현 예정
15
 //temporary type for matching manager
15
 //temporary type for matching manager
16
 //type match_manager struct{}
16
 //type match_manager struct{}
17
 
17
 
31
 	queue               MsgQueue
31
 	queue               MsgQueue
32
 	MicroServiceManager NodeManager `inject:""`
32
 	MicroServiceManager NodeManager `inject:""`
33
 	match_mng           match_manager
33
 	match_mng           match_manager
34
-	secure_mng          secure_manager
34
+	SecureManager       SecurityManager `inject:""`
35
 }
35
 }
36
 
36
 
37
 type Reply struct {
37
 type Reply struct {
154
 		newNode := MSNode{newMsg.From, newMsg.From}
154
 		newNode := MSNode{newMsg.From, newMsg.From}
155
 		resultAddNode := moscato.MicroServiceManager.AddMicroservice(newNode)
155
 		resultAddNode := moscato.MicroServiceManager.AddMicroservice(newNode)
156
 		if resultAddNode {
156
 		if resultAddNode {
157
-			log.Println("node added successful")
157
+			log.Println("Node added successful")
158
 		} else {
158
 		} else {
159
-			log.Println("node is already added, ignore RM")
159
+			log.Println("Node is already added, ignore RM")
160
+			return msg, nil
160
 		}
161
 		}
161
 
162
 
162
 		addr, _ := moscato.MicroServiceManager.GetIpaddr(newMsg.From)
163
 		addr, _ := moscato.MicroServiceManager.GetIpaddr(newMsg.From)
164
+		moscato.SecureManager.RegKey(newMsg)
165
+		fmt.Println(moscato.SecureManager.GetNodeKey(newMsg.From))
163
 		fmt.Println(addr)
166
 		fmt.Println(addr)
167
+
168
+		// ackRM 메세지 전송
164
 		go moscato.Send2MS(addr, newMsg)
169
 		go moscato.Send2MS(addr, newMsg)
165
 
170
 
166
 		log.Println("RM received")
171
 		log.Println("RM received")
206
 
211
 
207
 	err := graph.Provide(
212
 	err := graph.Provide(
208
 		&inject.Object{Value: NewMStable()},
213
 		&inject.Object{Value: NewMStable()},
209
-		&inject.Object{Value: moscato})
214
+		&inject.Object{Value: moscato},
215
+		&inject.Object{Value: NewSecurity()})
210
 	if err != nil {
216
 	if err != nil {
211
 		fmt.Println(err)
217
 		fmt.Println(err)
212
 		return
218
 		return

+ 1
- 0
src/broker/modules/message.go Vedi File

65
 //Microservice 등록 메세지
65
 //Microservice 등록 메세지
66
 type RegisterMsg struct {
66
 type RegisterMsg struct {
67
 	Message
67
 	Message
68
+	PrivateKey int64
68
 }
69
 }
69
 
70
 
70
 //Microservice 탈퇴 메세지(없앰)
71
 //Microservice 탈퇴 메세지(없앰)

+ 3
- 2
src/broker/modules/queue.go Vedi File

2
 
2
 
3
 import (
3
 import (
4
 	"errors"
4
 	"errors"
5
-	"log"
5
+	"github.com/fatih/color"
6
 )
6
 )
7
 
7
 
8
 type MsgQueue struct {
8
 type MsgQueue struct {
24
 		return errors.New("Queue Hadlerer Error: Already initialized.")
24
 		return errors.New("Queue Hadlerer Error: Already initialized.")
25
 	} else if mq.queue == nil {
25
 	} else if mq.queue == nil {
26
 		mq.queue = make(chan MsgUnit, 1000)
26
 		mq.queue = make(chan MsgUnit, 1000)
27
-		log.Println("queue is initialized.")
27
+		//log.Println("queue is initialized.")
28
+		color.Blue("queue is initialized.")
28
 		return nil
29
 		return nil
29
 	} else {
30
 	} else {
30
 		close(mq.queue)
31
 		close(mq.queue)

+ 3
- 3
src/broker/modules/secure.go Vedi File

16
 }
16
 }
17
 
17
 
18
 type SecurityManager interface {
18
 type SecurityManager interface {
19
-	RegKey(ksm KeyShareMsg)
19
+	RegKey(rm RegisterMsg)
20
 	GetNodeKey(nodeName string) int64
20
 	GetNodeKey(nodeName string) int64
21
 	ReEncrypt(fromKey int64, toKey int64, target []int64) []int64
21
 	ReEncrypt(fromKey int64, toKey int64, target []int64) []int64
22
 	ReEncPubMsg(fromPubMsg PublishMsg, nodeName string) *PublishMsg
22
 	ReEncPubMsg(fromPubMsg PublishMsg, nodeName string) *PublishMsg
28
 /**
28
 /**
29
 keyShareMsg 에서 각 노드의 private 키를 받아 keyMap 에 저장
29
 keyShareMsg 에서 각 노드의 private 키를 받아 keyMap 에 저장
30
 */
30
 */
31
-func (sc Security) RegKey(ksm KeyShareMsg) {
32
-	sc.KeyMap[ksm.Message.From] = ksm.key
31
+func (sc Security) RegKey(rm RegisterMsg) {
32
+	sc.KeyMap[rm.Message.From] = strconv.FormatInt(rm.PrivateKey, 10)
33
 }
33
 }
34
 
34
 
35
 /**
35
 /**

Loading…
Annulla
Salva