diff options
Diffstat (limited to 'vendor/github.com/gin-contrib')
-rw-r--r-- | vendor/github.com/gin-contrib/sessions/.travis.yml | 44 | ||||
-rw-r--r-- | vendor/github.com/gin-contrib/sessions/README.md | 388 | ||||
-rw-r--r-- | vendor/github.com/gin-contrib/sessions/sessions.go | 6 |
3 files changed, 219 insertions, 219 deletions
diff --git a/vendor/github.com/gin-contrib/sessions/.travis.yml b/vendor/github.com/gin-contrib/sessions/.travis.yml deleted file mode 100644 index 85e4724e9..000000000 --- a/vendor/github.com/gin-contrib/sessions/.travis.yml +++ /dev/null @@ -1,44 +0,0 @@ -language: go -sudo: false - -matrix: - fast_finish: true - include: - - go: 1.10.x - - go: 1.11.x - env: GO111MODULE=on - - go: 1.12.x - env: GO111MODULE=on - - go: 1.13.x - - go: master - env: GO111MODULE=on - -git: - depth: 10 - -services: - - redis - - memcached - - mongodb - -before_install: - - go get github.com/campoy/embedmd - -install: - - if [[ "${GO111MODULE}" = "on" ]]; then go mod download; else go get -t -v .; fi - - if [[ "${GO111MODULE}" = "on" ]]; then export PATH="${GOPATH}/bin:${GOROOT}/bin:${PATH}"; fi - -script: - - embedmd -d *.md - - go test -v -covermode=atomic -coverprofile=coverage.out ./... - -after_success: - - bash <(curl -s https://codecov.io/bash) - -notifications: - webhooks: - urls: - - https://webhooks.gitter.im/e/acc2c57482e94b44f557 - on_success: change - on_failure: always - on_start: false diff --git a/vendor/github.com/gin-contrib/sessions/README.md b/vendor/github.com/gin-contrib/sessions/README.md index 94e445250..7d5c2305a 100644 --- a/vendor/github.com/gin-contrib/sessions/README.md +++ b/vendor/github.com/gin-contrib/sessions/README.md @@ -1,6 +1,7 @@ # sessions -[](https://travis-ci.org/gin-contrib/sessions) +[](https://github.com/gin-contrib/sessions/actions/workflows/lint.yml) +[](https://github.com/gin-contrib/sessions/actions/workflows/testing.yml) [](https://codecov.io/gh/gin-contrib/sessions) [](https://goreportcard.com/report/github.com/gin-contrib/sessions) [](https://godoc.org/github.com/gin-contrib/sessions) @@ -13,6 +14,7 @@ Gin middleware for session management with multi-backend support: - [memcached](#memcached) - [MongoDB](#mongodb) - [memstore](#memstore) +- [PostgreSQL](#postgresql) ## Usage @@ -21,7 +23,7 @@ Gin middleware for session management with multi-backend support: Download and install it: ```bash -$ go get github.com/gin-contrib/sessions +go get github.com/gin-contrib/sessions ``` Import it in your code: @@ -38,27 +40,27 @@ import "github.com/gin-contrib/sessions" package main import ( - "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/cookie" - "github.com/gin-gonic/gin" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/cookie" + "github.com/gin-gonic/gin" ) func main() { - r := gin.Default() - store := cookie.NewStore([]byte("secret")) - r.Use(sessions.Sessions("mysession", store)) + r := gin.Default() + store := cookie.NewStore([]byte("secret")) + r.Use(sessions.Sessions("mysession", store)) - r.GET("/hello", func(c *gin.Context) { - session := sessions.Default(c) + r.GET("/hello", func(c *gin.Context) { + session := sessions.Default(c) - if session.Get("hello") != "world" { - session.Set("hello", "world") - session.Save() - } + if session.Get("hello") != "world" { + session.Set("hello", "world") + session.Save() + } - c.JSON(200, gin.H{"hello": session.Get("hello")}) - }) - r.Run(":8000") + c.JSON(200, gin.H{"hello": session.Get("hello")}) + }) + r.Run(":8000") } ``` @@ -68,109 +70,107 @@ func main() { package main import ( - "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/cookie" - "github.com/gin-gonic/gin" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/cookie" + "github.com/gin-gonic/gin" ) func main() { - r := gin.Default() - store := cookie.NewStore([]byte("secret")) - sessionNames := []string{"a", "b"} - r.Use(sessions.SessionsMany(sessionNames, store)) - - r.GET("/hello", func(c *gin.Context) { - sessionA := sessions.DefaultMany(c, "a") - sessionB := sessions.DefaultMany(c, "b") - - if sessionA.Get("hello") != "world!" { - sessionA.Set("hello", "world!") - sessionA.Save() - } - - if sessionB.Get("hello") != "world?" { - sessionB.Set("hello", "world?") - sessionB.Save() - } - - c.JSON(200, gin.H{ - "a": sessionA.Get("hello"), - "b": sessionB.Get("hello"), - }) - }) - r.Run(":8000") + r := gin.Default() + store := cookie.NewStore([]byte("secret")) + sessionNames := []string{"a", "b"} + r.Use(sessions.SessionsMany(sessionNames, store)) + + r.GET("/hello", func(c *gin.Context) { + sessionA := sessions.DefaultMany(c, "a") + sessionB := sessions.DefaultMany(c, "b") + + if sessionA.Get("hello") != "world!" { + sessionA.Set("hello", "world!") + sessionA.Save() + } + + if sessionB.Get("hello") != "world?" { + sessionB.Set("hello", "world?") + sessionB.Save() + } + + c.JSON(200, gin.H{ + "a": sessionA.Get("hello"), + "b": sessionB.Get("hello"), + }) + }) + r.Run(":8000") } ``` -## Backend examples +## Backend Examples ### cookie-based -[embedmd]:# (example/cookie/main.go go) ```go package main import ( - "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/cookie" - "github.com/gin-gonic/gin" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/cookie" + "github.com/gin-gonic/gin" ) func main() { - r := gin.Default() - store := cookie.NewStore([]byte("secret")) - r.Use(sessions.Sessions("mysession", store)) - - r.GET("/incr", func(c *gin.Context) { - session := sessions.Default(c) - var count int - v := session.Get("count") - if v == nil { - count = 0 - } else { - count = v.(int) - count++ - } - session.Set("count", count) - session.Save() - c.JSON(200, gin.H{"count": count}) - }) - r.Run(":8000") + r := gin.Default() + store := cookie.NewStore([]byte("secret")) + r.Use(sessions.Sessions("mysession", store)) + + r.GET("/incr", func(c *gin.Context) { + session := sessions.Default(c) + var count int + v := session.Get("count") + if v == nil { + count = 0 + } else { + count = v.(int) + count++ + } + session.Set("count", count) + session.Save() + c.JSON(200, gin.H{"count": count}) + }) + r.Run(":8000") } ``` ### Redis -[embedmd]:# (example/redis/main.go go) ```go package main import ( - "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/redis" - "github.com/gin-gonic/gin" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/redis" + "github.com/gin-gonic/gin" ) func main() { - r := gin.Default() - store, _ := redis.NewStore(10, "tcp", "localhost:6379", "", []byte("secret")) - r.Use(sessions.Sessions("mysession", store)) - - r.GET("/incr", func(c *gin.Context) { - session := sessions.Default(c) - var count int - v := session.Get("count") - if v == nil { - count = 0 - } else { - count = v.(int) - count++ - } - session.Set("count", count) - session.Save() - c.JSON(200, gin.H{"count": count}) - }) - r.Run(":8000") + r := gin.Default() + store, _ := redis.NewStore(10, "tcp", "localhost:6379", "", []byte("secret")) + r.Use(sessions.Sessions("mysession", store)) + + r.GET("/incr", func(c *gin.Context) { + session := sessions.Default(c) + var count int + v := session.Get("count") + if v == nil { + count = 0 + } else { + count = v.(int) + count++ + } + session.Set("count", count) + session.Save() + c.JSON(200, gin.H{"count": count}) + }) + r.Run(":8000") } ``` @@ -178,134 +178,174 @@ func main() { #### ASCII Protocol -[embedmd]:# (example/memcached/ascii.go go) ```go package main import ( - "github.com/bradfitz/gomemcache/memcache" - "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/memcached" - "github.com/gin-gonic/gin" + "github.com/bradfitz/gomemcache/memcache" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/memcached" + "github.com/gin-gonic/gin" ) func main() { - r := gin.Default() - store := memcached.NewStore(memcache.New("localhost:11211"), "", []byte("secret")) - r.Use(sessions.Sessions("mysession", store)) - - r.GET("/incr", func(c *gin.Context) { - session := sessions.Default(c) - var count int - v := session.Get("count") - if v == nil { - count = 0 - } else { - count = v.(int) - count++ - } - session.Set("count", count) - session.Save() - c.JSON(200, gin.H{"count": count}) - }) - r.Run(":8000") + r := gin.Default() + store := memcached.NewStore(memcache.New("localhost:11211"), "", []byte("secret")) + r.Use(sessions.Sessions("mysession", store)) + + r.GET("/incr", func(c *gin.Context) { + session := sessions.Default(c) + var count int + v := session.Get("count") + if v == nil { + count = 0 + } else { + count = v.(int) + count++ + } + session.Set("count", count) + session.Save() + c.JSON(200, gin.H{"count": count}) + }) + r.Run(":8000") } ``` #### Binary protocol (with optional SASL authentication) -[embedmd]:# (example/memcached/binary.go go) ```go package main import ( - "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/memcached" - "github.com/gin-gonic/gin" - "github.com/memcachier/mc" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/memcached" + "github.com/gin-gonic/gin" + "github.com/memcachier/mc" ) func main() { - r := gin.Default() - client := mc.NewMC("localhost:11211", "username", "password") - store := memcached.NewMemcacheStore(client, "", []byte("secret")) - r.Use(sessions.Sessions("mysession", store)) - - r.GET("/incr", func(c *gin.Context) { - session := sessions.Default(c) - var count int - v := session.Get("count") - if v == nil { - count = 0 - } else { - count = v.(int) - count++ - } - session.Set("count", count) - session.Save() - c.JSON(200, gin.H{"count": count}) - }) - r.Run(":8000") + r := gin.Default() + client := mc.NewMC("localhost:11211", "username", "password") + store := memcached.NewMemcacheStore(client, "", []byte("secret")) + r.Use(sessions.Sessions("mysession", store)) + + r.GET("/incr", func(c *gin.Context) { + session := sessions.Default(c) + var count int + v := session.Get("count") + if v == nil { + count = 0 + } else { + count = v.(int) + count++ + } + session.Set("count", count) + session.Save() + c.JSON(200, gin.H{"count": count}) + }) + r.Run(":8000") } ``` ### MongoDB -[embedmd]:# (example/mongo/main.go go) ```go package main import ( - "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/mongo" - "github.com/gin-gonic/gin" - "github.com/globalsign/mgo" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/mongo" + "github.com/gin-gonic/gin" + "github.com/globalsign/mgo" ) func main() { - r := gin.Default() - session, err := mgo.Dial("localhost:27017/test") - if err != nil { - // handle err - } + r := gin.Default() + session, err := mgo.Dial("localhost:27017/test") + if err != nil { + // handle err + } + + c := session.DB("").C("sessions") + store := mongo.NewStore(c, 3600, true, []byte("secret")) + r.Use(sessions.Sessions("mysession", store)) + + r.GET("/incr", func(c *gin.Context) { + session := sessions.Default(c) + var count int + v := session.Get("count") + if v == nil { + count = 0 + } else { + count = v.(int) + count++ + } + session.Set("count", count) + session.Save() + c.JSON(200, gin.H{"count": count}) + }) + r.Run(":8000") +} +``` - c := session.DB("").C("sessions") - store := mongo.NewStore(c, 3600, true, []byte("secret")) - r.Use(sessions.Sessions("mysession", store)) +### memstore - r.GET("/incr", func(c *gin.Context) { - session := sessions.Default(c) - var count int - v := session.Get("count") - if v == nil { - count = 0 - } else { - count = v.(int) - count++ - } - session.Set("count", count) - session.Save() - c.JSON(200, gin.H{"count": count}) - }) - r.Run(":8000") +```go +package main + +import ( + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/memstore" + "github.com/gin-gonic/gin" +) + +func main() { + r := gin.Default() + store := memstore.NewStore([]byte("secret")) + r.Use(sessions.Sessions("mysession", store)) + + r.GET("/incr", func(c *gin.Context) { + session := sessions.Default(c) + var count int + v := session.Get("count") + if v == nil { + count = 0 + } else { + count = v.(int) + count++ + } + session.Set("count", count) + session.Save() + c.JSON(200, gin.H{"count": count}) + }) + r.Run(":8000") } ``` -### memstore +### PostgreSQL -[embedmd]:# (example/memstore/main.go go) ```go package main import ( + "database/sql" "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/memstore" + "github.com/gin-contrib/sessions/postgres" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() - store := memstore.NewStore([]byte("secret")) + db, err := sql.Open("postgres", "postgresql://username:password@localhost:5432/database") + if err != nil { + // handle err + } + + store, err := postgres.NewStore(db, []byte("secret")) + if err != nil { + // handle err + } + r.Use(sessions.Sessions("mysession", store)) r.GET("/incr", func(c *gin.Context) { @@ -325,5 +365,3 @@ func main() { r.Run(":8000") } ``` - - diff --git a/vendor/github.com/gin-contrib/sessions/sessions.go b/vendor/github.com/gin-contrib/sessions/sessions.go index 8972e2321..fe116e8ef 100644 --- a/vendor/github.com/gin-contrib/sessions/sessions.go +++ b/vendor/github.com/gin-contrib/sessions/sessions.go @@ -22,6 +22,8 @@ type Store interface { // Wraps thinly gorilla-session methods. // Session stores the values and optional configuration for a session. type Session interface { + // ID of the session, generated by stores. It should not be used for user data. + ID() string // Get returns the session value associated to the given key. Get(key interface{}) interface{} // Set sets the session value associated to the given key. @@ -74,6 +76,10 @@ type session struct { writer http.ResponseWriter } +func (s *session) ID() string { + return s.Session().ID +} + func (s *session) Get(key interface{}) interface{} { return s.Session().Values[key] } |