Loading Gopkg.lock +116 −14 Original line number Diff line number Diff line Loading @@ -13,10 +13,26 @@ revision = "c95af922eae69f190717a0b7148960af8c55a072" [[projects]] branch = "master" name = "github.com/golang/protobuf" packages = ["jsonpb","proto","protoc-gen-go/descriptor","ptypes","ptypes/any","ptypes/duration","ptypes/empty","ptypes/struct","ptypes/timestamp","ptypes/wrappers"] revision = "c65a0412e71e8b9b3bfd22925720d23c0f054237" packages = [ "jsonpb", "proto", "protoc-gen-go/descriptor", "ptypes", "ptypes/any", "ptypes/duration", "ptypes/empty", "ptypes/struct", "ptypes/timestamp", "ptypes/wrappers" ] revision = "925541529c1fa6821df4e44ce2723319eb2be768" version = "v1.0.0" [[projects]] name = "github.com/gorhill/cronexpr" packages = ["."] revision = "d520615e531a6bf3fb69406b9eba718261285ec8" [[projects]] name = "github.com/gorilla/context" Loading @@ -43,18 +59,29 @@ [[projects]] name = "github.com/grpc-ecosystem/grpc-gateway" packages = ["runtime","runtime/internal","utilities"] packages = [ "protoc-gen-swagger/options", "runtime", "runtime/internal", "utilities" ] revision = "07f5e79768022f9a3265235f0db4ac8c3f675fec" version = "v1.3.1" [[projects]] name = "github.com/lib/pq" packages = [".","oid"] packages = [ ".", "oid" ] revision = "83612a56d3dd153a94a629cd64925371c9adad78" [[projects]] name = "github.com/rubenv/sql-migrate" packages = [".","sqlparse"] packages = [ ".", "sqlparse" ] revision = "6edbfbd6a369ee82463312ec67b2c92f97a1d4dc" [[projects]] Loading @@ -62,6 +89,16 @@ packages = ["."] revision = "063359185d32c6b045fa171ad7033ea545864fa1" [[projects]] name = "github.com/yuin/gopher-lua" packages = [ ".", "ast", "parse", "pm" ] revision = "7d7bc8747e3f614c5c587729a341fe7d8903cdb8" [[projects]] name = "go.uber.org/atomic" packages = ["."] Loading @@ -76,31 +113,96 @@ [[projects]] name = "go.uber.org/zap" packages = [".","buffer","internal/bufferpool","internal/color","internal/exit","zapcore"] packages = [ ".", "buffer", "internal/bufferpool", "internal/color", "internal/exit", "zapcore" ] revision = "35aad584952c3e7020db7b839f6b102de6271f89" version = "v1.7.1" [[projects]] branch = "master" name = "golang.org/x/crypto" packages = [ "bcrypt", "blowfish" ] revision = "1875d0a70c90e57f11972aefd42276df65e895b9" [[projects]] branch = "master" name = "golang.org/x/net" packages = ["context","http2","http2/hpack","idna","internal/timeseries","lex/httplex","trace"] revision = "5ccada7d0a7ba9aeb5d3aca8d3501b4c2a509fec" packages = [ "context", "http2", "http2/hpack", "idna", "internal/timeseries", "lex/httplex", "trace" ] revision = "2fb46b16b8dda405028c50f7c7f0f9dd1fa6bfb1" [[projects]] branch = "master" name = "golang.org/x/text" packages = ["collate","collate/build","internal/colltab","internal/gen","internal/tag","internal/triegen","internal/ucd","language","secure/bidirule","transform","unicode/bidi","unicode/cldr","unicode/norm","unicode/rangetable"] packages = [ "collate", "collate/build", "internal/colltab", "internal/gen", "internal/tag", "internal/triegen", "internal/ucd", "language", "secure/bidirule", "transform", "unicode/bidi", "unicode/cldr", "unicode/norm", "unicode/rangetable" ] revision = "e19ae1496984b1c655b8044a65c0300a3c878dd3" [[projects]] branch = "master" name = "google.golang.org/genproto" packages = ["googleapis/api/annotations","googleapis/rpc/status"] revision = "a8101f21cf983e773d0c1133ebc5424792003214" packages = [ "googleapis/api/annotations", "googleapis/rpc/status" ] revision = "4eb30f4778eed4c258ba66527a0d4f9ec8a36c45" [[projects]] name = "google.golang.org/grpc" packages = [".","balancer","balancer/base","balancer/roundrobin","codes","connectivity","credentials","encoding","grpclb/grpc_lb_v1/messages","grpclog","internal","keepalive","metadata","naming","peer","resolver","resolver/dns","resolver/passthrough","stats","status","tap","transport"] packages = [ ".", "balancer", "balancer/base", "balancer/roundrobin", "codes", "connectivity", "credentials", "encoding", "grpclb/grpc_lb_v1/messages", "grpclog", "internal", "keepalive", "metadata", "naming", "peer", "resolver", "resolver/dns", "resolver/passthrough", "stats", "status", "tap", "transport" ] revision = "6b51017f791ae1cfbec89c52efdf444b13b550ef" version = "v1.9.2" Loading @@ -113,6 +215,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 inputs-digest = "01db32151b4b5b577d58fd0dd63d472814ddd331fefa1b105dc12fba3d724f99" inputs-digest = "bd27c78031b478645517c097fe42bdb946de0a2a3fdbecf6c56718b8e2ba9492" solver-name = "gps-cdcl" solver-version = 1 Gopkg.toml +11 −0 Original line number Diff line number Diff line Loading @@ -37,3 +37,14 @@ [[constraint]] name = "github.com/gorilla/websocket" revision = "292fd08b2560ad524ee37396253d71570339a821" [[constraint]] name = "github.com/yuin/gopher-lua" revision = "7d7bc8747e3f614c5c587729a341fe7d8903cdb8" [[constraint]] name = "github.com/gorhill/cronexpr" revision = "d520615e531a6bf3fb69406b9eba718261285ec8" [[constraint]] name = "golang.org/x/crypto" main.go +6 −2 Original line number Diff line number Diff line Loading @@ -85,8 +85,12 @@ func main() { registry := server.NewSessionRegistry() tracker := server.StartLocalTracker(jsonLogger, registry, jsonpbMarshaler, config.GetName()) router := server.NewLocalMessageRouter(registry, tracker, jsonpbMarshaler) pipeline := server.NewPipeline(config, db, tracker, router, registry) apiServer := server.StartApiServer(jsonLogger, db, config, tracker, registry, pipeline, jsonpbMarshaler, jsonpbUnmarshaler) runtimePool, err := server.NewRuntimePool(jsonLogger, multiLogger, db, config, registry, tracker, router) if err != nil { multiLogger.Fatal("Failed initializing runtime modules", zap.Error(err)) } pipeline := server.NewPipeline(config, db, registry, tracker, router, runtimePool) apiServer := server.StartApiServer(jsonLogger, db, config, registry, tracker, pipeline, runtimePool, jsonpbMarshaler, jsonpbUnmarshaler) // Respect OS stop signals. c := make(chan os.Signal, 2) Loading server/api.go +4 −2 Original line number Diff line number Diff line Loading @@ -49,12 +49,13 @@ type ApiServer struct { logger *zap.Logger db *sql.DB config Config runtimePool *RuntimePool random *rand.Rand grpcServer *grpc.Server grpcGatewayServer *http.Server } func StartApiServer(logger *zap.Logger, db *sql.DB, config Config, tracker Tracker, registry *SessionRegistry, pipeline *pipeline, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler) *ApiServer { func StartApiServer(logger *zap.Logger, db *sql.DB, config Config, registry *SessionRegistry, tracker Tracker, pipeline *pipeline, runtimePool *RuntimePool, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler) *ApiServer { grpcServer := grpc.NewServer( grpc.UnaryInterceptor(SecurityInterceptorFunc(logger, config)), ) Loading @@ -63,6 +64,7 @@ func StartApiServer(logger *zap.Logger, db *sql.DB, config Config, tracker Track logger: logger, db: db, config: config, runtimePool: runtimePool, random: rand.New(rand.NewSource(time.Now().UnixNano())), grpcServer: grpcServer, } Loading Loading @@ -94,7 +96,7 @@ func StartApiServer(logger *zap.Logger, db *sql.DB, config Config, tracker Track CORSOrigins := handlers.AllowedOrigins([]string{"*"}) grpcGatewayRouter := mux.NewRouter() grpcGatewayRouter.HandleFunc("/ws", NewSocketWsAcceptor(logger, config, tracker, registry, jsonpbMarshaler, jsonpbUnmarshaler, pipeline.processRequest)) grpcGatewayRouter.HandleFunc("/ws", NewSocketWsAcceptor(logger, config, registry, tracker, jsonpbMarshaler, jsonpbUnmarshaler, pipeline.processRequest)) grpcGatewayRouter.NewRoute().Handler(grpcGateway) handlerWithCORS := handlers.CORS(CORSHeaders, CORSOrigins)(grpcGatewayRouter) Loading server/api_authenticate.go +4 −0 Original line number Diff line number Diff line Loading @@ -142,6 +142,10 @@ func (s *ApiServer) AuthenticateSteamFunc(ctx context.Context, in *api.Authentic func generateToken(config Config, userID, username string) string { exp := time.Now().UTC().Add(time.Duration(config.GetSession().TokenExpiryMs) * time.Millisecond).Unix() return generateTokenWithExpiry(config, userID, username, exp) } func generateTokenWithExpiry(config Config, userID, username string, exp int64) string { token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "uid": userID, "exp": exp, Loading Loading
Gopkg.lock +116 −14 Original line number Diff line number Diff line Loading @@ -13,10 +13,26 @@ revision = "c95af922eae69f190717a0b7148960af8c55a072" [[projects]] branch = "master" name = "github.com/golang/protobuf" packages = ["jsonpb","proto","protoc-gen-go/descriptor","ptypes","ptypes/any","ptypes/duration","ptypes/empty","ptypes/struct","ptypes/timestamp","ptypes/wrappers"] revision = "c65a0412e71e8b9b3bfd22925720d23c0f054237" packages = [ "jsonpb", "proto", "protoc-gen-go/descriptor", "ptypes", "ptypes/any", "ptypes/duration", "ptypes/empty", "ptypes/struct", "ptypes/timestamp", "ptypes/wrappers" ] revision = "925541529c1fa6821df4e44ce2723319eb2be768" version = "v1.0.0" [[projects]] name = "github.com/gorhill/cronexpr" packages = ["."] revision = "d520615e531a6bf3fb69406b9eba718261285ec8" [[projects]] name = "github.com/gorilla/context" Loading @@ -43,18 +59,29 @@ [[projects]] name = "github.com/grpc-ecosystem/grpc-gateway" packages = ["runtime","runtime/internal","utilities"] packages = [ "protoc-gen-swagger/options", "runtime", "runtime/internal", "utilities" ] revision = "07f5e79768022f9a3265235f0db4ac8c3f675fec" version = "v1.3.1" [[projects]] name = "github.com/lib/pq" packages = [".","oid"] packages = [ ".", "oid" ] revision = "83612a56d3dd153a94a629cd64925371c9adad78" [[projects]] name = "github.com/rubenv/sql-migrate" packages = [".","sqlparse"] packages = [ ".", "sqlparse" ] revision = "6edbfbd6a369ee82463312ec67b2c92f97a1d4dc" [[projects]] Loading @@ -62,6 +89,16 @@ packages = ["."] revision = "063359185d32c6b045fa171ad7033ea545864fa1" [[projects]] name = "github.com/yuin/gopher-lua" packages = [ ".", "ast", "parse", "pm" ] revision = "7d7bc8747e3f614c5c587729a341fe7d8903cdb8" [[projects]] name = "go.uber.org/atomic" packages = ["."] Loading @@ -76,31 +113,96 @@ [[projects]] name = "go.uber.org/zap" packages = [".","buffer","internal/bufferpool","internal/color","internal/exit","zapcore"] packages = [ ".", "buffer", "internal/bufferpool", "internal/color", "internal/exit", "zapcore" ] revision = "35aad584952c3e7020db7b839f6b102de6271f89" version = "v1.7.1" [[projects]] branch = "master" name = "golang.org/x/crypto" packages = [ "bcrypt", "blowfish" ] revision = "1875d0a70c90e57f11972aefd42276df65e895b9" [[projects]] branch = "master" name = "golang.org/x/net" packages = ["context","http2","http2/hpack","idna","internal/timeseries","lex/httplex","trace"] revision = "5ccada7d0a7ba9aeb5d3aca8d3501b4c2a509fec" packages = [ "context", "http2", "http2/hpack", "idna", "internal/timeseries", "lex/httplex", "trace" ] revision = "2fb46b16b8dda405028c50f7c7f0f9dd1fa6bfb1" [[projects]] branch = "master" name = "golang.org/x/text" packages = ["collate","collate/build","internal/colltab","internal/gen","internal/tag","internal/triegen","internal/ucd","language","secure/bidirule","transform","unicode/bidi","unicode/cldr","unicode/norm","unicode/rangetable"] packages = [ "collate", "collate/build", "internal/colltab", "internal/gen", "internal/tag", "internal/triegen", "internal/ucd", "language", "secure/bidirule", "transform", "unicode/bidi", "unicode/cldr", "unicode/norm", "unicode/rangetable" ] revision = "e19ae1496984b1c655b8044a65c0300a3c878dd3" [[projects]] branch = "master" name = "google.golang.org/genproto" packages = ["googleapis/api/annotations","googleapis/rpc/status"] revision = "a8101f21cf983e773d0c1133ebc5424792003214" packages = [ "googleapis/api/annotations", "googleapis/rpc/status" ] revision = "4eb30f4778eed4c258ba66527a0d4f9ec8a36c45" [[projects]] name = "google.golang.org/grpc" packages = [".","balancer","balancer/base","balancer/roundrobin","codes","connectivity","credentials","encoding","grpclb/grpc_lb_v1/messages","grpclog","internal","keepalive","metadata","naming","peer","resolver","resolver/dns","resolver/passthrough","stats","status","tap","transport"] packages = [ ".", "balancer", "balancer/base", "balancer/roundrobin", "codes", "connectivity", "credentials", "encoding", "grpclb/grpc_lb_v1/messages", "grpclog", "internal", "keepalive", "metadata", "naming", "peer", "resolver", "resolver/dns", "resolver/passthrough", "stats", "status", "tap", "transport" ] revision = "6b51017f791ae1cfbec89c52efdf444b13b550ef" version = "v1.9.2" Loading @@ -113,6 +215,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 inputs-digest = "01db32151b4b5b577d58fd0dd63d472814ddd331fefa1b105dc12fba3d724f99" inputs-digest = "bd27c78031b478645517c097fe42bdb946de0a2a3fdbecf6c56718b8e2ba9492" solver-name = "gps-cdcl" solver-version = 1
Gopkg.toml +11 −0 Original line number Diff line number Diff line Loading @@ -37,3 +37,14 @@ [[constraint]] name = "github.com/gorilla/websocket" revision = "292fd08b2560ad524ee37396253d71570339a821" [[constraint]] name = "github.com/yuin/gopher-lua" revision = "7d7bc8747e3f614c5c587729a341fe7d8903cdb8" [[constraint]] name = "github.com/gorhill/cronexpr" revision = "d520615e531a6bf3fb69406b9eba718261285ec8" [[constraint]] name = "golang.org/x/crypto"
main.go +6 −2 Original line number Diff line number Diff line Loading @@ -85,8 +85,12 @@ func main() { registry := server.NewSessionRegistry() tracker := server.StartLocalTracker(jsonLogger, registry, jsonpbMarshaler, config.GetName()) router := server.NewLocalMessageRouter(registry, tracker, jsonpbMarshaler) pipeline := server.NewPipeline(config, db, tracker, router, registry) apiServer := server.StartApiServer(jsonLogger, db, config, tracker, registry, pipeline, jsonpbMarshaler, jsonpbUnmarshaler) runtimePool, err := server.NewRuntimePool(jsonLogger, multiLogger, db, config, registry, tracker, router) if err != nil { multiLogger.Fatal("Failed initializing runtime modules", zap.Error(err)) } pipeline := server.NewPipeline(config, db, registry, tracker, router, runtimePool) apiServer := server.StartApiServer(jsonLogger, db, config, registry, tracker, pipeline, runtimePool, jsonpbMarshaler, jsonpbUnmarshaler) // Respect OS stop signals. c := make(chan os.Signal, 2) Loading
server/api.go +4 −2 Original line number Diff line number Diff line Loading @@ -49,12 +49,13 @@ type ApiServer struct { logger *zap.Logger db *sql.DB config Config runtimePool *RuntimePool random *rand.Rand grpcServer *grpc.Server grpcGatewayServer *http.Server } func StartApiServer(logger *zap.Logger, db *sql.DB, config Config, tracker Tracker, registry *SessionRegistry, pipeline *pipeline, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler) *ApiServer { func StartApiServer(logger *zap.Logger, db *sql.DB, config Config, registry *SessionRegistry, tracker Tracker, pipeline *pipeline, runtimePool *RuntimePool, jsonpbMarshaler *jsonpb.Marshaler, jsonpbUnmarshaler *jsonpb.Unmarshaler) *ApiServer { grpcServer := grpc.NewServer( grpc.UnaryInterceptor(SecurityInterceptorFunc(logger, config)), ) Loading @@ -63,6 +64,7 @@ func StartApiServer(logger *zap.Logger, db *sql.DB, config Config, tracker Track logger: logger, db: db, config: config, runtimePool: runtimePool, random: rand.New(rand.NewSource(time.Now().UnixNano())), grpcServer: grpcServer, } Loading Loading @@ -94,7 +96,7 @@ func StartApiServer(logger *zap.Logger, db *sql.DB, config Config, tracker Track CORSOrigins := handlers.AllowedOrigins([]string{"*"}) grpcGatewayRouter := mux.NewRouter() grpcGatewayRouter.HandleFunc("/ws", NewSocketWsAcceptor(logger, config, tracker, registry, jsonpbMarshaler, jsonpbUnmarshaler, pipeline.processRequest)) grpcGatewayRouter.HandleFunc("/ws", NewSocketWsAcceptor(logger, config, registry, tracker, jsonpbMarshaler, jsonpbUnmarshaler, pipeline.processRequest)) grpcGatewayRouter.NewRoute().Handler(grpcGateway) handlerWithCORS := handlers.CORS(CORSHeaders, CORSOrigins)(grpcGatewayRouter) Loading
server/api_authenticate.go +4 −0 Original line number Diff line number Diff line Loading @@ -142,6 +142,10 @@ func (s *ApiServer) AuthenticateSteamFunc(ctx context.Context, in *api.Authentic func generateToken(config Config, userID, username string) string { exp := time.Now().UTC().Add(time.Duration(config.GetSession().TokenExpiryMs) * time.Millisecond).Unix() return generateTokenWithExpiry(config, userID, username, exp) } func generateTokenWithExpiry(config Config, userID, username string, exp int64) string { token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "uid": userID, "exp": exp, Loading