fengweiqiang 4 anni fa
parent
commit
998199cdf3

+ 4 - 3
udpdataclear/udpSensitiveWords/config.json

@@ -13,7 +13,8 @@
   "winner_c": "",
   "udpport": "1484",
   "query_addrs": [
-    "127.0.0.1:50051"
+    "127.0.0.1:8888",
+    "127.0.0.1:8889"
   ],
   "nextNode": [
     {
@@ -25,6 +26,6 @@
   "userName": "",
   "passWord": "",
   "es_type": "azktest",
-  "es_index": "azktest"
-
+  "es_index": "azktest",
+  "certFile": "./server.pem"
 }

+ 25 - 22
udpdataclear/udpSensitiveWords/grpc_server/main.go

@@ -8,11 +8,11 @@ import (
 	"github.com/prometheus/client_golang/prometheus"
 	"github.com/prometheus/client_golang/prometheus/promhttp"
 	"google.golang.org/grpc"
+	"google.golang.org/grpc/credentials"
 	"gopkg.in/olivere/elastic.v1"
 	"gopkg.in/yaml.v3"
 	"io/ioutil"
 	"log"
-	"net"
 	"net/http"
 	"sensitiveWords.udp/proto_grpc"
 	"sensitiveWords.udp/util"
@@ -64,7 +64,6 @@ func init() {
 
 	es_type, es_index = "azktest", "azktest"
 
-
 	reg.MustRegister(grpcMetrics, customizedCounterMetric)
 
 }
@@ -96,31 +95,35 @@ func main() {
 		go addTaskSensitiveWordsData() //增量-改配置文件
 	}
 
-	lis, err := net.Listen("tcp", YamlConfig.Port)
+	mux := http.NewServeMux()
+	mux.Handle("/",  promhttp.HandlerFor(reg, promhttp.HandlerOpts{}))
+	cred, err := credentials.NewServerTLSFromFile(YamlConfig.CertFile, YamlConfig.KeyFile)
 	if err != nil {
-		log.Fatalf("failed to listen: %v", err)
-	}
-	defer lis.Close()
-	// Create a HTTP server for prometheus.
-	httpServer := &http.Server{
-		Handler: promhttp.HandlerFor(reg, promhttp.HandlerOpts{}),
-		Addr: fmt.Sprintf("0.0.0.0:%v",
-			YamlConfig.LogPort),
+		log.Fatalln(err)
 	}
 	grpcServer := grpc.NewServer(
+		grpc.Creds(cred),
 		grpc.UnaryInterceptor(grpcMetrics.UnaryServerInterceptor()),
 	)
 	proto_grpc.RegisterSensitiveWordsServer(grpcServer, &server{})
 	grpcMetrics.InitializeMetrics(grpcServer)
-	// Start your http server for prometheus.
-	go func() {
-		if err := httpServer.ListenAndServe(); err != nil {
-			log.Fatal("Unable to start a http server.")
-		}
-	}()
-	log.Println("server start:", YamlConfig.Port)
-	if err := grpcServer.Serve(lis); err != nil {
-		log.Fatalf("failed to serve: %v", err)
+
+	if err = http.ListenAndServeTLS(
+		fmt.Sprintf("%s", YamlConfig.Port),
+		YamlConfig.CertFile,
+		YamlConfig.KeyFile,
+		http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+			if r.ProtoMajor == 2 && strings.HasPrefix(
+				r.Header.Get("Content-Type"), "application/grpc") {
+				grpcServer.ServeHTTP(w, r)
+			} else {
+				mux.ServeHTTP(w, r)
+			}
+
+			return
+		}),
+	);err != nil{
+		log.Fatalln(err)
 	}
 
 }
@@ -139,7 +142,6 @@ func (s *server) Search(ctx context.Context, in *proto_grpc.Request) (*proto_grp
 	return &proto_grpc.ResultSensitiveWords{SensitiveWords: rada}, nil
 }
 
-
 type YAMLConfig struct {
 	MixdataMgoAddr  string `yaml:"mixdataMgoAddr"`
 	UserName        string `yaml:"userName"`
@@ -150,5 +152,6 @@ type YAMLConfig struct {
 	TaskLteId       string `yaml:"taskLteId"`
 	IsAddTask       int    `yaml:"isAddTask"`
 	Port            string `yaml:"port"`
-	LogPort         string `yaml:"log_port"`
+	CertFile        string `yaml:"certFile"`
+	KeyFile         string `yaml:"keyFile"`
 }

+ 9 - 0
udpdataclear/udpSensitiveWords/grpc_server/server.key

@@ -0,0 +1,9 @@
+-----BEGIN EC PARAMETERS-----
+BgUrgQQAIg==
+-----END EC PARAMETERS-----
+-----BEGIN EC PRIVATE KEY-----
+MIGkAgEBBDB5SpEKW72mbNkDf5Kz4HptIAN0numQWNm3qZ3GKeymkabDghscv/DD
+P12vF5evLOGgBwYFK4EEACKhZANiAAQgb3lFAEQ4D0Z5b7uuepmFJadV6F+dAHHx
+ZZ6eyaz3Q96hj3lIy1PugYRYDmJJLlALxuKE7ZlcQ2k4Dh+GiLGROUUW/tyNXeZv
+Ouz4fWzV1SMdFSV2gVvF6oZUQcrE2+c=
+-----END EC PRIVATE KEY-----

+ 14 - 0
udpdataclear/udpSensitiveWords/grpc_server/server.pem

@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICODCCAb6gAwIBAgIUMPYKo8E41OB9mZI1X8Gr0RpDD3MwCgYIKoZIzj0EAwIw
+UzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
+dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAwwDdG9wMB4XDTIxMDQyODAx
+NTc1NloXDTMxMDQyNjAxNTc1NlowUzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNv
+bWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoG
+A1UEAwwDdG9wMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEIG95RQBEOA9GeW+7rnqZ
+hSWnVehfnQBx8WWensms90PeoY95SMtT7oGEWA5iSS5QC8bihO2ZXENpOA4fhoix
+kTlFFv7cjV3mbzrs+H1s1dUjHRUldoFbxeqGVEHKxNvno1MwUTAdBgNVHQ4EFgQU
+46JBxQa+Q908CC1YGU+uzruM9AcwHwYDVR0jBBgwFoAU46JBxQa+Q908CC1YGU+u
+zruM9AcwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNoADBlAjEAw3DyG4op
+xa8nbG/xJlUUC61F6n0PaQbpGX8Zo5dvJ7O9RkfltY8+HPP4euUw0KUmAjACjA1J
+U8xLgkVaDmGsrUPVqeayN7gY9iwH4kiuYbhn9tnLbB/y1HybAm6Nitf+h2A=
+-----END CERTIFICATE-----

+ 3 - 2
udpdataclear/udpSensitiveWords/grpc_server/server.yaml

@@ -1,6 +1,5 @@
 mixdataMgoAddr: 192.168.3.166:27082
-port: :50051
-log_port: 2092
+port: :8889
 mongodbPoolSize: 10
 dbName: mixdata
 userName:
@@ -8,3 +7,5 @@ passWord:
 taskGteId: 605d4f3ea15e7ed8e49ec97c
 taskLteId: 605d4f3ea15e7ed8e49ec9ad
 isAddTask: 0
+certFile: ./server.pem
+keyFile: ./server.key

+ 14 - 0
udpdataclear/udpSensitiveWords/server.pem

@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICODCCAb6gAwIBAgIUMPYKo8E41OB9mZI1X8Gr0RpDD3MwCgYIKoZIzj0EAwIw
+UzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
+dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAwwDdG9wMB4XDTIxMDQyODAx
+NTc1NloXDTMxMDQyNjAxNTc1NlowUzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNv
+bWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoG
+A1UEAwwDdG9wMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEIG95RQBEOA9GeW+7rnqZ
+hSWnVehfnQBx8WWensms90PeoY95SMtT7oGEWA5iSS5QC8bihO2ZXENpOA4fhoix
+kTlFFv7cjV3mbzrs+H1s1dUjHRUldoFbxeqGVEHKxNvno1MwUTAdBgNVHQ4EFgQU
+46JBxQa+Q908CC1YGU+uzruM9AcwHwYDVR0jBBgwFoAU46JBxQa+Q908CC1YGU+u
+zruM9AcwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNoADBlAjEAw3DyG4op
+xa8nbG/xJlUUC61F6n0PaQbpGX8Zo5dvJ7O9RkfltY8+HPP4euUw0KUmAjACjA1J
+U8xLgkVaDmGsrUPVqeayN7gY9iwH4kiuYbhn9tnLbB/y1HybAm6Nitf+h2A=
+-----END CERTIFICATE-----

+ 8 - 1
udpdataclear/udpSensitiveWords/util/config.go

@@ -3,6 +3,7 @@ package util
 import (
 	"context"
 	"google.golang.org/grpc"
+	"google.golang.org/grpc/credentials"
 	"google.golang.org/grpc/keepalive"
 	"gopkg.in/olivere/elastic.v1"
 	"log"
@@ -37,12 +38,17 @@ func InitC() {
 	FindBuyerC, FindAgencyC, FindWinnerC = Config["buyer_c"].(string), Config["agency_c"].(string), Config["winner_c"].(string)
 	Collection = Config["collection"].(string)
 	qaddrs := Config["query_addrs"].([]interface{})
+	CertFile = Config["certFile"].(string)
+	cred,err := credentials.NewClientTLSFromFile(CertFile,"top")
+	if err != nil {
+		log.Fatalln("Failed to create TLS credentials %v", err)
+	}
 	for _, v := range qaddrs {
 		ctx, cancelFunc := context.WithTimeout(context.TODO(), time.Second*5)
 		defer cancelFunc()
 		conn, err := grpc.DialContext(ctx, v.(string),
-			grpc.WithInsecure(),
 			grpc.WithBlock(),
+			grpc.WithTransportCredentials(cred),
 			grpc.WithKeepaliveParams(keepalive.ClientParameters{
 				Time:                10 * time.Second,
 				Timeout:             100 * time.Millisecond,
@@ -70,3 +76,4 @@ var FindBuyerC, FindAgencyC, FindWinnerC string
 var QAddrs []*proto_grpc.SensitiveWordsClient
 var es_type, es_index string
 var Client_Es *elastic.Client
+var CertFile string

+ 4 - 2
udpdataclear/udpSensitiveWords/util/udpdata.go

@@ -87,7 +87,7 @@ func QuerySensitiveWords(sid, eid string) {
 		}
 		num++
 	}
-	log.Println("处理完成:", num)
+	log.Println(sid, eid,"处理完成:", num)
 }
 
 //grpc - 处理
@@ -183,6 +183,9 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
 func handleData(datas []string) []string {
 	del := map[int]bool{}
 	dataslen := len(datas)
+	if dataslen == 0{
+		return []string{}
+	}
 	for i := 0; i < dataslen; i++ {
 		if !del[i] {
 			for j := i + 1; j < dataslen; j++ {
@@ -208,6 +211,5 @@ func handleData(datas []string) []string {
 		}
 	}
 
-	log.Println(rdata)
 	return rdata
 }