This commit is contained in:
crusader
2018-04-12 21:39:48 +09:00
parent e561dd5584
commit a0d3ff158a
5 changed files with 33 additions and 46 deletions

View File

@@ -1,26 +1,24 @@
package servlet
import (
"sync"
"fmt"
"encoding/base64"
"context"
"encoding/base64"
"encoding/json"
"fmt"
"sync"
"github.com/valyala/fasthttp"
"git.loafle.net/commons/logging-go"
"git.loafle.net/commons/server-go"
og "git.loafle.net/overflow/gateway"
"git.loafle.net/commons/server-go/socket"
ocnc "git.loafle.net/overflow/commons-go/noauthprobe/constants"
ocnm "git.loafle.net/overflow/commons-go/noauthprobe/model"
"git.loafle.net/overflow/member_gateway_rpc/subscribe"
og "git.loafle.net/overflow/gateway"
"git.loafle.net/overflow/gateway/external/grpc"
ogs "git.loafle.net/overflow/gateway/subscribe"
ogrs "git.loafle.net/overflow/gateway_rpc/servlet"
"git.loafle.net/commons/logging-go"
"git.loafle.net/overflow/gateway/external/grpc"
"git.loafle.net/commons/server-go/socket"
"git.loafle.net/overflow/member_gateway_rpc/subscribe"
)
type AuthServlet interface {
@@ -105,35 +103,27 @@ func (s *AuthServlets) Handshake(servletCtx server.ServletCtx, ctx *fasthttp.Req
return extHeader, nil
case ocnc.HTTPRequestHeaderValue_NoAuthProbe_Method_Connect:
bTempProbeKey := ctx.Request.Header.Peek(ocnc.HTTPRequestHeaderKey_NoAuthProbe_TempProbeKey)
if nil == bTempProbeKey {
return nil, fmt.Errorf("Noauth probe temp key is not an existing key", )
return nil, fmt.Errorf("Noauth probe temp key is not an existing key")
}
tempProbeKey := string(bTempProbeKey)
grpcCTX := context.Background()
r, err := grpc.Exec(grpcCTX, "NoAuthProbeService.readByTempKey", string(bTempProbeKey))
_, err := grpc.Exec(grpcCTX, "NoAuthProbeService.readByTempKey", tempProbeKey)
if nil != err {
return nil, fmt.Errorf("grpc result error: %s", err.Error() )
return nil, fmt.Errorf("grpc result error: %s", err.Error())
}
nap := &ocnm.NoAuthProbe{}
err = json.Unmarshal([]byte(r), nap)
if nil != err {
return nil, fmt.Errorf("grpc result unMarshal Error: %s", err.Error())
}
servletCtx.SetAttribute(og.SessionIDKey, bTempProbeKey)
servletCtx.SetAttribute(og.SessionIDKey, tempProbeKey)
servletCtx.SetAttribute(og.SessionClientTypeKey, og.PROBE)
servletCtx.SetAttribute(og.SessionTargetIDKey, bTempProbeKey)
servletCtx.SetAttribute(og.SessionTargetIDKey, tempProbeKey)
return nil, nil
default:
return nil, fmt.Errorf("Unexpected noauth probe httpRequestHeaderValue: %v", method)
}
return nil, nil
}
func (s *AuthServlets) OnConnect(servletCtx server.ServletCtx, conn socket.Conn) {
@@ -158,14 +148,14 @@ func (s *AuthServlets) OnDisconnect(servletCtx server.ServletCtx) {
func (s *AuthServlets) handleSubscribe(serverCtx server.ServerCtx, subscribeChan <-chan *ogs.Message) {
for {
select {
case msg, ok := <- subscribeChan:
case msg, ok := <-subscribeChan:
if !ok {
return
}
switch msg.TargetType {
case ogs.PROBE:
for _, targetID := range msg.Targets {
for _, targetID := range msg.Targets {
_connections := s.getProbeConnections(targetID)
if nil == _connections || 0 == len(_connections) {
break
@@ -215,4 +205,4 @@ func releaseConnection(_connection *connection) {
_connection.servletCtx = nil
connectionPool.Put(_connection)
}
}

View File

@@ -1,25 +1,23 @@
package servlet
import (
"sync"
"fmt"
"context"
"encoding/json"
"fmt"
"sync"
"github.com/valyala/fasthttp"
"git.loafle.net/commons/logging-go"
"git.loafle.net/commons/server-go"
og "git.loafle.net/overflow/gateway"
"git.loafle.net/commons/server-go/socket"
ocpc "git.loafle.net/overflow/commons-go/probe/constants"
ocpm "git.loafle.net/overflow/commons-go/probe/model"
"git.loafle.net/overflow/member_gateway_rpc/subscribe"
og "git.loafle.net/overflow/gateway"
"git.loafle.net/overflow/gateway/external/grpc"
ogs "git.loafle.net/overflow/gateway/subscribe"
ogrs "git.loafle.net/overflow/gateway_rpc/servlet"
"git.loafle.net/commons/logging-go"
"git.loafle.net/overflow/gateway/external/grpc"
"git.loafle.net/commons/server-go/socket"
"git.loafle.net/overflow/member_gateway_rpc/subscribe"
)
type ProbeServlet interface {
@@ -133,14 +131,14 @@ func (s *ProbeServlets) OnDisconnect(servletCtx server.ServletCtx) {
func (s *ProbeServlets) handleSubscribe(serverCtx server.ServerCtx, subscribeChan <-chan *ogs.Message) {
for {
select {
case msg, ok := <- subscribeChan:
case msg, ok := <-subscribeChan:
if !ok {
return
}
switch msg.TargetType {
case ogs.PROBE:
for _, targetID := range msg.Targets {
for _, targetID := range msg.Targets {
_connections := s.getProbeConnections(targetID)
if nil == _connections || 0 == len(_connections) {
break
@@ -190,4 +188,4 @@ func (s *ProbeServlets) getProbeConnections(targetID string) []*connection {
// _connection.servletCtx = nil
//
// connectionPool.Put(_connection)
//}
//}