Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = ["client_test.go"],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = ["//vendor/github.com/smartystreets/goconvey/convey:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = ["client.go"],
importpath = "go-common/app/service/main/passport-auth/rpc/client",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = ["//library/net/rpc:go_default_library"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,44 @@
package client
import (
"context"
"go-common/library/net/rpc"
)
var (
_noRes = &struct{}{}
)
const (
// token
_delTokenCache = "RPC.DelTokenCache"
// cookie
_delCookieCache = "RPC.DelCookieCache"
)
// Service is a question service.
type Service struct {
client *rpc.Client2
}
// New new a question service.
func New(c *rpc.ClientConfig) (s *Service) {
s = &Service{
client: rpc.NewDiscoveryCli("passport.service.auth", c),
}
return
}
// DelTokenCache query token.
func (s *Service) DelTokenCache(c context.Context, token string) (err error) {
err = s.client.Call(c, _delTokenCache, token, &_noRes)
return
}
// DelCookieCookie del cookie.
func (s *Service) DelCookieCookie(c context.Context, session string) (err error) {
err = s.client.Call(c, _delCookieCache, session, &_noRes)
return
}

View File

@@ -0,0 +1,40 @@
package client
import (
"context"
"testing"
"time"
. "github.com/smartystreets/goconvey/convey"
)
var (
s *Service
)
func startRPCServer() {
s = New(nil)
}
func TestClient_DelTokenCache(t *testing.T) {
startRPCServer()
time.Sleep(3 * time.Second)
Convey("Test RPC client del token by token", t, func() {
var (
c = context.TODO()
ak = "64294c76972aee8cf4af51566c76ed0d"
)
err := s.DelTokenCache(c, ak)
So(err, ShouldBeNil)
})
}
func TestClient_DelCookieCookie(t *testing.T) {
startRPCServer()
time.Sleep(3 * time.Second)
Convey("Test RPC Client del cookie by cookie", t, func() {
sd := "1d0fb9cf,1,7f9745b6"
err := s.DelCookieCookie(context.TODO(), sd)
So(err, ShouldBeNil)
})
}

View File

@@ -0,0 +1,37 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["server.go"],
importpath = "go-common/app/service/main/passport-auth/rpc/grpc",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/passport-auth/api/grpc/v1:go_default_library",
"//app/service/main/passport-auth/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/metadata:go_default_library",
"//library/net/rpc/warden:go_default_library",
"@org_golang_google_grpc//:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,85 @@
// Package grpc server generate by warden_gen
package grpc
import (
"context"
"go-common/app/service/main/passport-auth/api/grpc/v1"
"go-common/app/service/main/passport-auth/service"
"go-common/library/ecode"
"go-common/library/log"
"go-common/library/net/metadata"
"go-common/library/net/rpc/warden"
"google.golang.org/grpc"
)
// New Auth warden rpc server
func New(cfg *warden.ServerConfig, s *service.Service) *warden.Server {
w := warden.NewServer(cfg)
v1.RegisterAuthServer(w.Server(), &server{s})
w.Use(func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
if resp, err = handler(ctx, req); err == nil {
log.Infov(ctx,
log.KV("path", info.FullMethod),
log.KV("caller", metadata.String(ctx, metadata.Caller)),
log.KV("args", req), log.KV("retVal", resp))
}
return
})
ws, err := w.Start()
if err != nil {
panic(err)
}
return ws
}
type server struct {
svr *service.Service
}
var _ v1.AuthServer = &server{}
var (
emptyCookieReply = &v1.GetCookieInfoReply{
IsLogin: false,
}
emptyTokenReply = &v1.GetTokenInfoReply{
IsLogin: false,
}
)
// CookieInfo verify user info by cookie.
func (s *server) GetCookieInfo(c context.Context, req *v1.GetCookieInfoReq) (*v1.GetCookieInfoReply, error) {
res, err := s.svr.CookieInfo(c, req.GetCookie())
if err != nil {
if err == ecode.NoLogin {
return emptyCookieReply, nil
}
return nil, err
}
return &v1.GetCookieInfoReply{
IsLogin: true,
Mid: res.Mid,
Expires: res.Expires,
Csrf: res.CSRF,
}, nil
}
// TokenInfo verify user info by accesskey.
func (s *server) GetTokenInfo(c context.Context, req *v1.GetTokenInfoReq) (*v1.GetTokenInfoReply, error) {
res, err := s.svr.TokenInfo(c, req.GetToken())
if err != nil {
if err == ecode.NoLogin {
return emptyTokenReply, nil
}
return nil, err
}
return &v1.GetTokenInfoReply{
IsLogin: true,
Mid: res.Mid,
Expires: res.Expires,
Csrf: res.CSRF,
}, nil
}

View File

@@ -0,0 +1,50 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = ["rpc_test.go"],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = [
"//app/service/main/passport-auth/conf:go_default_library",
"//app/service/main/passport-auth/model:go_default_library",
"//app/service/main/passport-auth/service:go_default_library",
"//library/log:go_default_library",
"//vendor/github.com/smartystreets/goconvey/convey:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = ["rpc.go"],
importpath = "go-common/app/service/main/passport-auth/rpc/server",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/passport-auth/conf:go_default_library",
"//app/service/main/passport-auth/service:go_default_library",
"//library/net/rpc:go_default_library",
"//library/net/rpc/context:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,40 @@
package server
import (
"go-common/app/service/main/passport-auth/conf"
"go-common/app/service/main/passport-auth/service"
"go-common/library/net/rpc"
"go-common/library/net/rpc/context"
)
// RPC rpc struct
type RPC struct {
s *service.Service
}
// New new rpc server.
func New(c *conf.Config, s *service.Service) (svr *rpc.Server) {
r := &RPC{s: s}
svr = rpc.NewServer(c.RPCServer)
if err := svr.Register(r); err != nil {
panic(err)
}
return
}
// Ping check connection success.
func (r *RPC) Ping(c context.Context, arg *struct{}, res *struct{}) (err error) {
return
}
// DelTokenCache query token
func (r *RPC) DelTokenCache(c context.Context, token string, res *struct{}) (err error) {
err = r.s.DelTokenCache(c, token)
return
}
// DelCookieCache del cookie
func (r *RPC) DelCookieCache(c context.Context, session string, res *struct{}) (err error) {
err = r.s.DelCookieCache(c, session)
return
}

View File

@@ -0,0 +1,115 @@
package server
import (
"net/rpc"
"sync"
"testing"
"time"
"go-common/app/service/main/passport-auth/conf"
"go-common/app/service/main/passport-auth/model"
"go-common/app/service/main/passport-auth/service"
"go-common/library/log"
. "github.com/smartystreets/goconvey/convey"
)
const (
addr = "127.0.0.1:7579"
_testPing = "RPC.Ping"
// token
_tokenInfo = "RPC.TokenInfo"
_delToken = "RPC.DelToken"
// cookie
_cookieInfo = "RPC.CookieInfo"
_delCookie = "RPC.DelCookie"
)
var (
_noArg = &struct{}{}
client *rpc.Client
once sync.Once
)
func startServer() {
if err := conf.Init(); err != nil {
panic(err)
}
log.Init(conf.Conf.Xlog)
defer log.Close()
svr := service.New(conf.Conf)
New(conf.Conf, svr)
time.Sleep(time.Second * 3)
var err error
client, err = rpc.Dial("tcp", addr)
if err != nil {
panic(err)
}
}
func TestRPC_Ping(t *testing.T) {
once.Do(startServer)
if err := client.Call(_testPing, &_noArg, &_noArg); err != nil {
t.Errorf("client.Call(%s) error(%v)", _testPing, err)
t.FailNow()
}
}
func TestRPC_TokenInfo(t *testing.T) {
var (
err error
arg = "64294c76972aee8cf4af51566c76ed0d"
res *model.Token
)
once.Do(startServer)
Convey("Test RPC server get token by token", t, func() {
err = client.Call(_tokenInfo, arg, res)
So(err, ShouldNotBeNil)
So(res, ShouldNotBeEmpty)
})
}
func TestRPC_DelToken(t *testing.T) {
var (
err error
arg = "64294c76972aee8cf4af51566c76ed0d"
res int64
)
once.Do(startServer)
time.Sleep(3 * time.Second)
Convey("Test RPC server del token by token", t, func() {
err = client.Call(_delToken, arg, res)
So(err, ShouldNotBeNil)
So(res, ShouldNotBeEmpty)
})
}
func TestRPC_CookieInfo(t *testing.T) {
var (
err error
arg = "c1300f65,1519273116,f05bd5ef"
res *model.Cookie
)
once.Do(startServer)
Convey("Test RPC server get coookie by ssda", t, func() {
err = client.Call(_cookieInfo, arg, res)
So(err, ShouldNotBeNil)
So(res, ShouldNotBeEmpty)
})
}
func TestRPC_DelCookie(t *testing.T) {
var (
err error
arg = "c1300f65,1519273116,f05bd5ef"
res int64
)
once.Do(startServer)
time.Sleep(3 * time.Second)
Convey("Test RPC server del coookie by cookie", t, func() {
err = client.Call(_delCookie, arg, res)
So(err, ShouldNotBeNil)
So(res, ShouldNotBeEmpty)
})
}