Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
im-microservice
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Li Feifei
im-microservice
Commits
008a4b79
Commit
008a4b79
authored
Jul 03, 2020
by
Li Feifei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改目录结构
parent
25a939db
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
210 additions
and
138 deletions
+210
-138
db.go
db/db.go
+4
-4
go.mod
go.mod
+2
-0
go.sum
go.sum
+32
-0
auth.go
helper/auth.go
+96
-0
Registration_services.go
initialization/Registration_services.go
+30
-0
main.go
main.go
+6
-134
main.go
sevice/health/main.go
+40
-0
No files found.
db/db.go
View file @
008a4b79
...
...
@@ -2,10 +2,10 @@ package db
import
(
"fmt"
"log"
"sync"
"github.com/astaxie/beego/orm"
beeLogger
"github.com/beego/bee/logger"
"github.com/go-redis/redis/v8"
_
"github.com/go-sql-driver/mysql"
...
...
@@ -44,6 +44,7 @@ func newRedisClient() {
Password
:
redis_pass
,
// no password set
DB
:
redis_db
,
// use default DB
})
beeLogger
.
Log
.
Success
(
"Redis connect success"
)
}
func
newMysqlClient
()
{
...
...
@@ -52,12 +53,11 @@ func newMysqlClient() {
_
=
orm
.
RegisterDriver
(
mysql_driver
,
orm
.
DRMySQL
)
err
:=
orm
.
RegisterDataBase
(
"default"
,
mysql_driver
,
dbConfStr
,
10
,
100
)
if
err
!=
nil
{
log
.
Println
(
"db connect error =>
"
,
err
)
beeLogger
.
Log
.
Fatalf
(
"db connect error => %v
"
,
err
)
return
}
orm
.
RegisterModel
(
new
(
CompanyApp
),
new
(
ImBase
),
new
(
ImChatRoom
),
new
(
ImUserRelationship
),
new
(
ImUser
))
orm
.
Debug
=
true
MysqlClient
=
orm
.
NewOrm
()
log
.
Println
(
"MySQL connect success"
)
beeLogger
.
Log
.
Success
(
"MySQL connect success"
)
}
go.mod
View file @
008a4b79
...
...
@@ -4,6 +4,7 @@ go 1.12
require (
github.com/astaxie/beego v1.12.1
github.com/beego/bee v1.11.1
github.com/go-playground/universal-translator v0.17.0 // indirect
github.com/go-redis/redis/v8 v8.0.0-beta.5
github.com/go-sql-driver/mysql v1.5.0
...
...
@@ -13,6 +14,7 @@ require (
github.com/rs/xid v1.2.1
github.com/segmentio/ksuid v1.0.2
golang.org/x/net v0.0.0-20191021144547-ec77196f6094
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
google.golang.org/grpc v1.30.0
google.golang.org/protobuf v1.24.0
gopkg.in/go-playground/validator.v9 v9.31.0
...
...
go.sum
View file @
008a4b79
...
...
@@ -6,6 +6,8 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE
github.com/OwnLocal/goes v1.0.0/go.mod h1:8rIFjBGTue3lCU0wplczcUgt9Gxgrkkrw7etMIcn8TM=
github.com/astaxie/beego v1.12.1 h1:dfpuoxpzLVgclveAXe4PyNKqkzgm5zF4tgF2B3kkM2I=
github.com/astaxie/beego v1.12.1/go.mod h1:kPBWpSANNbSdIqOc8SUL9h+1oyBMZhROeYsXQDbidWQ=
github.com/beego/bee v1.11.1 h1:K20a2lZt87fGsxFXtKZV6f8Dl+sOymF/ap9sy3nQJR8=
github.com/beego/bee v1.11.1/go.mod h1:MAKtNp1zHlMcs1aV3vFvN7UYIxRpODI1kYDfHNyIqDA=
github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ=
github.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU=
github.com/benbjohnson/clock v1.0.0/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
...
...
@@ -17,9 +19,12 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cosiner/argv v0.1.0/go.mod h1:EusR6TucWKX+zFgtdUsKT2Cvg45K5rtpCcWz4hK06d8=
github.com/couchbase/go-couchbase v0.0.0-20181122212707-3e9b6e1258bb/go.mod h1:TWI8EKQMs5u5jLKW/tsb9VwauIrMIxQG1r5fMsswK5U=
github.com/couchbase/gomemcached v0.0.0-20181122193126-5125a94a666c/go.mod h1:srVSlQLB8iXBVXHgnqemxUXqN6FCvClgCMPCsjBDR7c=
github.com/couchbase/goutils v0.0.0-20180530154633-e865a1461c8a/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cupcake/rdb v0.0.0-20161107195141-43ba34106c76/go.mod h1:vYwsqCOLxGiisLwp9rITslkFNpZD5rz43tf41QFkTWY=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
...
...
@@ -32,6 +37,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/gadelkareem/delve v1.4.2-0.20200619175259-dcd01330766f/go.mod h1:yRnaIw9CedrRtnrIhNVh1JLOz0cjEUWOEM5FaWEMOV0=
github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no=
...
...
@@ -63,41 +70,57 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-dap v0.2.0/go.mod h1:5q8aYQFnHOAZEMP+6vmq25HKYAEwE+LF5yh7JKrrhSQ=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grpc-ecosystem/grpc-health-probe v0.3.2 h1:daShAySXI1DnGc8U9B1E4Qm6o7qzmFR4aRIJ4vY/TUo=
github.com/grpc-ecosystem/grpc-health-probe v0.3.2/go.mod h1:izVOQ4RWbjUR6lm4nn+VLJyQ+FyaiGmprEYgI04Gs7U=
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/mattn/go-colorable v0.0.0-20170327083344-ded68f7a9561/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/opentracing/opentracing-go v1.1.1-0.20190913142402-a7454ce5950e/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/peterh/liner v0.0.0-20170317030525-88609521dc4b/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc=
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/segmentio/ksuid v1.0.2 h1:9yBfKyw4ECGTdALaF09Snw3sLJmYIX6AbPJrAy6MrDc=
github.com/segmentio/ksuid v1.0.2/go.mod h1:BXuJDr2byAiHuQaQtSKoXh1J0YmUDurywOXgB2w+OSU=
github.com/siddontang/go v0.0.0-20180604090527-bdc77568d726/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=
github.com/siddontang/ledisdb v0.0.0-20181029004158-becf5f38d373/go.mod h1:mF1DpOSOUiJRMR+FDqaqu3EBqrybQtrDDszLUZ6oxPg=
github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA=
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/cobra v0.0.0-20170417170307-b6cb39589372/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/pflag v0.0.0-20170417173400-9e4c21054fa1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/ssdb/gossdb v0.0.0-20180723034631-88f6b59b84ec/go.mod h1:QBvMkMya+gXctz3kmljlUCu/yB3GZ6oee+dUozsezQE=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/syndtr/goleveldb v0.0.0-20181127023241-353a9fca669c/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
github.com/wendal/errors v0.0.0-20130201093226-f66c77a7882b/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc=
go.opentelemetry.io/otel v0.6.0 h1:+vkHm/XwJ7ekpISV2Ixew93gCrxTbuwTF5rSewnLLgw=
go.opentelemetry.io/otel v0.6.0/go.mod h1:jzBIgIzK43Iu1BpDAXwqOd6UPsSAk+ewVZ5ofSXw4Ek=
go.starlark.net v0.0.0-20190702223751-32f345186213/go.mod h1:c1/X6cHgvdXj6pUlmWKMkuqRnW4K8x2vwt6JAaaircg=
golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
...
...
@@ -125,18 +148,25 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191020212454-3e7259c5e7c2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s=
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20191127201027-ecd32218bd7f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200117065230-39095c1d176c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
...
...
@@ -174,5 +204,7 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
helper/auth.go
0 → 100644
View file @
008a4b79
package
helper
import
(
"context"
"crypto/sha1"
"encoding/hex"
"fmt"
"regexp"
"strconv"
"time"
"golang.org/x/time/rate"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
const
(
health_path
=
"/pb.Health/Check"
)
func
permissionError
(
msg
string
)
error
{
return
status
.
Error
(
codes
.
InvalidArgument
,
msg
)
}
func
checksum
(
req
map
[
string
]
string
)
error
{
err
,
AppSecret
:=
GetSecretByKey
(
req
[
"Appkey"
])
if
err
!=
nil
{
return
status
.
Error
(
codes
.
NotFound
,
"appkey不存在"
)
}
server_time
:=
time
.
Now
()
.
Unix
()
client_time
,
err
:=
strconv
.
Atoi
(
req
[
"Curtime"
])
if
err
!=
nil
{
return
status
.
Error
(
codes
.
Aborted
,
err
.
Error
())
}
if
server_time
>
int64
(
client_time
)
{
return
permissionError
(
"当前客户端时间不能小于服务端时间"
)
}
sha11
:=
sha1
.
New
()
sha11
.
Write
([]
byte
(
AppSecret
+
req
[
"Nonce"
]
+
req
[
"Curtime"
]))
sevice_checksum
:=
hex
.
EncodeToString
(
sha11
.
Sum
([]
byte
(
nil
)))
if
sevice_checksum
!=
req
[
"Checksum"
]
{
return
permissionError
(
"加密串不正确"
)
}
return
nil
}
func
Auth
(
ctx
context
.
Context
,
req
interface
{},
info
*
grpc
.
UnaryServerInfo
,
handler
grpc
.
UnaryHandler
)
(
interface
{},
error
)
{
if
info
.
FullMethod
!=
health_path
{
limiter
:=
rate
.
NewLimiter
(
rate
.
Every
(
100
*
time
.
Millisecond
),
1
)
if
limiter
.
Allow
()
{
request_map
:=
make
(
map
[
string
]
string
)
s
:=
fmt
.
Sprintf
(
"%v"
,
req
)
key_r
,
_
:=
regexp
.
Compile
(
`Appkey:"(.*?)"`
)
nonce_r
,
_
:=
regexp
.
Compile
(
`Nonce:"(.*?)"`
)
c_r
,
_
:=
regexp
.
Compile
(
`Curtime:"(.*?)"`
)
cs_r
,
_
:=
regexp
.
Compile
(
`Checksum:"(.*?)"`
)
appkey
:=
key_r
.
FindAllStringSubmatch
(
s
,
-
1
)
nonce
:=
nonce_r
.
FindAllStringSubmatch
(
s
,
-
1
)
curtime
:=
c_r
.
FindAllStringSubmatch
(
s
,
-
1
)
check_sum
:=
cs_r
.
FindAllStringSubmatch
(
s
,
-
1
)
if
len
(
appkey
)
<
1
{
return
nil
,
permissionError
(
"缺少appkey"
)
}
if
len
(
nonce
)
<
1
{
return
nil
,
permissionError
(
"缺少nonce"
)
}
if
len
(
curtime
)
<
1
{
return
nil
,
permissionError
(
"缺少curtime"
)
}
if
len
(
check_sum
)
<
1
{
return
nil
,
permissionError
(
"缺少checksum"
)
}
request_map
[
"Appkey"
]
=
appkey
[
0
][
1
]
request_map
[
"Nonce"
]
=
nonce
[
0
][
1
]
request_map
[
"Curtime"
]
=
curtime
[
0
][
1
]
request_map
[
"Checksum"
]
=
check_sum
[
0
][
1
]
if
err
:=
checksum
(
request_map
);
err
!=
nil
{
return
nil
,
err
}
}
else
{
return
nil
,
status
.
Error
(
codes
.
Unauthenticated
,
"请求超过限制,请稍后再试"
)
}
}
return
handler
(
ctx
,
req
)
}
initialization/Registration_services.go
0 → 100644
View file @
008a4b79
package
initialization
import
(
"im-microservice/helper"
"im-microservice/pb"
"im-microservice/sevice/health"
"im-microservice/sevice/im_chat_room"
ic
"im-microservice/sevice/im_configure"
"im-microservice/sevice/im_user"
iur
"im-microservice/sevice/im_user_relationship"
"google.golang.org/grpc"
"google.golang.org/grpc/reflection"
)
var
RpcServer
*
grpc
.
Server
func
init
()
{
var
opts
[]
grpc
.
ServerOption
opts
=
append
(
opts
,
grpc
.
UnaryInterceptor
(
helper
.
Auth
))
s
:=
grpc
.
NewServer
(
opts
...
)
srv
:=
health
.
NewServer
()
pb
.
RegisterHealthServer
(
s
,
srv
)
pb
.
RegisterConfigureSeviceServer
(
s
,
&
ic
.
ConfigureSevice
{})
pb
.
RegisterChatRoomServiceServer
(
s
,
&
im_chat_room
.
ImChatRoomService
{})
pb
.
RegisterImUserServer
(
s
,
&
im_user
.
ImUserServer
{})
pb
.
RegisterUserRelationshipServiceServer
(
s
,
&
iur
.
UserRelationshipService
{})
reflection
.
Register
(
s
)
RpcServer
=
s
}
main.go
View file @
008a4b79
package
main
import
(
"crypto/sha1"
"encoding/hex"
"fmt"
"log"
"net"
"regexp"
"strconv"
"sync"
"time"
"im-microservice/helper"
"im-microservice/pb"
"im-microservice/sevice/im_chat_room"
ic
"im-microservice/sevice/im_configure"
"im-microservice/sevice/im_user"
iur
"im-microservice/sevice/im_user_relationship"
"golang.org/x/net/context"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/reflection"
"google.golang.org/grpc/status"
beeLogger
"github.com/beego/bee/logger"
initialize
"im-microservice/initialization"
)
type
Health
interface
{
// Check returns if server is healthy or not
Check
(
c
context
.
Context
)
(
bool
,
error
)
}
// 健康检测
type
Server
struct
{
mu
sync
.
Mutex
statusMap
map
[
string
]
pb
.
HealthCheckResponse_ServingStatus
}
func
NewServer
()
*
Server
{
return
&
Server
{
statusMap
:
make
(
map
[
string
]
pb
.
HealthCheckResponse_ServingStatus
),
}
}
func
permissionError
(
msg
string
)
error
{
return
status
.
Error
(
codes
.
InvalidArgument
,
msg
)
}
func
(
s
*
Server
)
Check
(
ctx
context
.
Context
,
in
*
pb
.
HealthCheckRequest
)
(
*
pb
.
HealthCheckResponse
,
error
)
{
s
.
mu
.
Lock
()
defer
s
.
mu
.
Unlock
()
if
in
.
Service
==
""
{
return
&
pb
.
HealthCheckResponse
{
Status
:
pb
.
HealthCheckResponse_SERVING
},
nil
}
if
status
,
ok
:=
s
.
statusMap
[
in
.
Service
];
ok
{
return
&
pb
.
HealthCheckResponse
{
Status
:
status
},
nil
}
return
nil
,
status
.
Error
(
codes
.
NotFound
,
"unkonw service"
)
}
const
(
port
=
":50051"
health_path
=
"/pb.Health/Check"
)
func
checksum
(
req
map
[
string
]
string
)
error
{
err
,
AppSecret
:=
helper
.
GetSecretByKey
(
req
[
"Appkey"
])
if
err
!=
nil
{
return
status
.
Error
(
codes
.
NotFound
,
"appkey不存在"
)
}
server_time
:=
time
.
Now
()
.
Unix
()
client_time
,
err
:=
strconv
.
Atoi
(
req
[
"Curtime"
])
if
err
!=
nil
{
return
status
.
Error
(
codes
.
Aborted
,
err
.
Error
())
}
if
server_time
>
int64
(
client_time
)
{
return
permissionError
(
"当前客户端时间不能小于服务端时间"
)
}
sha11
:=
sha1
.
New
()
sha11
.
Write
([]
byte
(
AppSecret
+
req
[
"Nonce"
]
+
req
[
"Curtime"
]))
sevice_checksum
:=
hex
.
EncodeToString
(
sha11
.
Sum
([]
byte
(
nil
)))
if
sevice_checksum
!=
req
[
"Checksum"
]
{
return
permissionError
(
"加密串不正确"
)
}
return
nil
}
func
auth
(
ctx
context
.
Context
,
req
interface
{},
info
*
grpc
.
UnaryServerInfo
,
handler
grpc
.
UnaryHandler
)
(
interface
{},
error
)
{
if
info
.
FullMethod
!=
health_path
{
request_map
:=
make
(
map
[
string
]
string
)
s
:=
fmt
.
Sprintf
(
"%v"
,
req
)
key_r
,
_
:=
regexp
.
Compile
(
`Appkey:"(.*?)"`
)
nonce_r
,
_
:=
regexp
.
Compile
(
`Nonce:"(.*?)"`
)
c_r
,
_
:=
regexp
.
Compile
(
`Curtime:"(.*?)"`
)
cs_r
,
_
:=
regexp
.
Compile
(
`Checksum:"(.*?)"`
)
appkey
:=
key_r
.
FindAllStringSubmatch
(
s
,
-
1
)
nonce
:=
nonce_r
.
FindAllStringSubmatch
(
s
,
-
1
)
curtime
:=
c_r
.
FindAllStringSubmatch
(
s
,
-
1
)
check_sum
:=
cs_r
.
FindAllStringSubmatch
(
s
,
-
1
)
if
len
(
appkey
)
<
1
{
return
nil
,
permissionError
(
"缺少appkey"
)
}
if
len
(
nonce
)
<
1
{
return
nil
,
permissionError
(
"缺少nonce"
)
}
if
len
(
curtime
)
<
1
{
return
nil
,
permissionError
(
"缺少curtime"
)
}
if
len
(
check_sum
)
<
1
{
return
nil
,
permissionError
(
"缺少checksum"
)
}
request_map
[
"Appkey"
]
=
appkey
[
0
][
1
]
request_map
[
"Nonce"
]
=
nonce
[
0
][
1
]
request_map
[
"Curtime"
]
=
curtime
[
0
][
1
]
request_map
[
"Checksum"
]
=
check_sum
[
0
][
1
]
if
err
:=
checksum
(
request_map
);
err
!=
nil
{
return
nil
,
err
}
}
return
handler
(
ctx
,
req
)
}
func
main
()
{
lis
,
err
:=
net
.
Listen
(
"tcp"
,
port
)
if
err
!=
nil
{
l
og
.
Fatalf
(
"failed to listen: %v"
,
err
)
beeLogger
.
L
og
.
Fatalf
(
"failed to listen: %v"
,
err
)
}
var
opts
[]
grpc
.
ServerOption
opts
=
append
(
opts
,
grpc
.
UnaryInterceptor
(
auth
))
s
:=
grpc
.
NewServer
(
opts
...
)
srv
:=
NewServer
()
pb
.
RegisterHealthServer
(
s
,
srv
)
pb
.
RegisterConfigureSeviceServer
(
s
,
&
ic
.
ConfigureSevice
{})
pb
.
RegisterChatRoomServiceServer
(
s
,
&
im_chat_room
.
ImChatRoomService
{})
pb
.
RegisterImUserServer
(
s
,
&
im_user
.
ImUserServer
{})
pb
.
RegisterUserRelationshipServiceServer
(
s
,
&
iur
.
UserRelationshipService
{})
reflection
.
Register
(
s
)
log
.
Println
(
"gRPC server is running on "
+
port
+
" port."
)
if
err
:=
s
.
Serve
(
lis
);
err
!=
nil
{
log
.
Fatalf
(
"failed to serve: %v"
,
err
)
beeLogger
.
Log
.
Success
(
"gRPC server is running on "
+
port
+
" port."
)
if
err
:=
initialize
.
RpcServer
.
Serve
(
lis
);
err
!=
nil
{
beeLogger
.
Log
.
Fatalf
(
"failed to serve: %v"
,
err
)
}
}
sevice/health/main.go
0 → 100644
View file @
008a4b79
package
health
import
(
"context"
"sync"
"im-microservice/pb"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
type
Health
interface
{
// Check returns if server is healthy or not
Check
(
c
context
.
Context
)
(
bool
,
error
)
}
// 健康检测
type
Server
struct
{
mu
sync
.
Mutex
statusMap
map
[
string
]
pb
.
HealthCheckResponse_ServingStatus
}
func
(
s
*
Server
)
Check
(
ctx
context
.
Context
,
in
*
pb
.
HealthCheckRequest
)
(
*
pb
.
HealthCheckResponse
,
error
)
{
s
.
mu
.
Lock
()
defer
s
.
mu
.
Unlock
()
if
in
.
Service
==
""
{
return
&
pb
.
HealthCheckResponse
{
Status
:
pb
.
HealthCheckResponse_SERVING
},
nil
}
if
status
,
ok
:=
s
.
statusMap
[
in
.
Service
];
ok
{
return
&
pb
.
HealthCheckResponse
{
Status
:
status
},
nil
}
return
nil
,
status
.
Error
(
codes
.
NotFound
,
"unkonw service"
)
}
func
NewServer
()
*
Server
{
return
&
Server
{
statusMap
:
make
(
map
[
string
]
pb
.
HealthCheckResponse_ServingStatus
),
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment