mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Update github.com/lafriks/xormstore and tidy up mod.go (#8020)
This commit is contained in:
		
				
					committed by
					
						 Antoine GIRARD
						Antoine GIRARD
					
				
			
			
				
	
			
			
			
						parent
						
							dd3ba9bb6b
						
					
				
				
					commit
					cedb285e25
				
			
							
								
								
									
										22
									
								
								vendor/github.com/gorilla/sessions/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/gorilla/sessions/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,22 +0,0 @@ | ||||
| language: go | ||||
| sudo: false | ||||
|  | ||||
| matrix: | ||||
|   include: | ||||
|     - go: 1.3 | ||||
|     - go: 1.4 | ||||
|     - go: 1.5 | ||||
|     - go: 1.6 | ||||
|     - go: 1.7 | ||||
|     - go: tip | ||||
|   allow_failures: | ||||
|     - go: tip | ||||
|  | ||||
| install: | ||||
|   - # skip | ||||
|  | ||||
| script: | ||||
|   - go get -t -v ./... | ||||
|   - diff -u <(echo -n) <(gofmt -d .) | ||||
|   - go vet $(go list ./... | grep -v /vendor/) | ||||
|   - go test -v -race ./... | ||||
							
								
								
									
										77
									
								
								vendor/github.com/gorilla/sessions/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										77
									
								
								vendor/github.com/gorilla/sessions/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,23 +1,22 @@ | ||||
| sessions | ||||
| ======== | ||||
| # sessions | ||||
|  | ||||
| [](https://godoc.org/github.com/gorilla/sessions) [](https://travis-ci.org/gorilla/sessions) | ||||
| [](https://sourcegraph.com/github.com/gorilla/sessions?badge) | ||||
|  | ||||
|  | ||||
| gorilla/sessions provides cookie and filesystem sessions and infrastructure for | ||||
| custom session backends. | ||||
|  | ||||
| The key features are: | ||||
|  | ||||
| * Simple API: use it as an easy way to set signed (and optionally | ||||
| - Simple API: use it as an easy way to set signed (and optionally | ||||
|   encrypted) cookies. | ||||
| * Built-in backends to store sessions in cookies or the filesystem. | ||||
| * Flash messages: session values that last until read. | ||||
| * Convenient way to switch session persistency (aka "remember me") and set | ||||
| - Built-in backends to store sessions in cookies or the filesystem. | ||||
| - Flash messages: session values that last until read. | ||||
| - Convenient way to switch session persistency (aka "remember me") and set | ||||
|   other attributes. | ||||
| * Mechanism to rotate authentication and encryption keys. | ||||
| * Multiple sessions per request, even using different backends. | ||||
| * Interfaces and infrastructure for custom session backends: sessions from | ||||
| - Mechanism to rotate authentication and encryption keys. | ||||
| - Multiple sessions per request, even using different backends. | ||||
| - Interfaces and infrastructure for custom session backends: sessions from | ||||
|   different stores can be retrieved and batch-saved using a common API. | ||||
|  | ||||
| Let's start with an example that shows the sessions API in a nutshell: | ||||
| @@ -28,7 +27,11 @@ Let's start with an example that shows the sessions API in a nutshell: | ||||
| 		"github.com/gorilla/sessions" | ||||
| 	) | ||||
|  | ||||
| 	var store = sessions.NewCookieStore([]byte("something-very-secret")) | ||||
| 	// Note: Don't store your key in your source code. Pass it via an | ||||
| 	// environmental variable, or flag (or both), and don't accidentally commit it | ||||
| 	// alongside your code. Ensure your key is sufficiently random - i.e. use Go's | ||||
| 	// crypto/rand or securecookie.GenerateRandomKey(32) and persist the result. | ||||
| 	var store = sessions.NewCookieStore([]byte(os.Getenv("SESSION_KEY"))) | ||||
|  | ||||
| 	func MyHandler(w http.ResponseWriter, r *http.Request) { | ||||
| 		// Get a session. We're ignoring the error resulted from decoding an | ||||
| @@ -48,44 +51,32 @@ secret key used to authenticate the session. Inside the handler, we call | ||||
| some session values in session.Values, which is a `map[interface{}]interface{}`. | ||||
| And finally we call `session.Save()` to save the session in the response. | ||||
|  | ||||
| Important Note: If you aren't using gorilla/mux, you need to wrap your handlers | ||||
| with | ||||
| [`context.ClearHandler`](http://www.gorillatoolkit.org/pkg/context#ClearHandler) | ||||
| or else you will leak memory! An easy way to do this is to wrap the top-level | ||||
| mux when calling http.ListenAndServe: | ||||
|  | ||||
| ```go | ||||
| 	http.ListenAndServe(":8080", context.ClearHandler(http.DefaultServeMux)) | ||||
| ``` | ||||
|  | ||||
| The ClearHandler function is provided by the gorilla/context package. | ||||
|  | ||||
| More examples are available [on the Gorilla | ||||
| website](http://www.gorillatoolkit.org/pkg/sessions). | ||||
| website](https://www.gorillatoolkit.org/pkg/sessions). | ||||
|  | ||||
| ## Store Implementations | ||||
|  | ||||
| Other implementations of the `sessions.Store` interface: | ||||
|  | ||||
| * [github.com/starJammer/gorilla-sessions-arangodb](https://github.com/starJammer/gorilla-sessions-arangodb) - ArangoDB | ||||
| * [github.com/yosssi/boltstore](https://github.com/yosssi/boltstore) - Bolt | ||||
| * [github.com/srinathgs/couchbasestore](https://github.com/srinathgs/couchbasestore) - Couchbase | ||||
| * [github.com/denizeren/dynamostore](https://github.com/denizeren/dynamostore) - Dynamodb on AWS | ||||
| * [github.com/savaki/dynastore](https://github.com/savaki/dynastore) - DynamoDB on AWS (Official AWS library) | ||||
| * [github.com/bradleypeabody/gorilla-sessions-memcache](https://github.com/bradleypeabody/gorilla-sessions-memcache) - Memcache | ||||
| * [github.com/dsoprea/go-appengine-sessioncascade](https://github.com/dsoprea/go-appengine-sessioncascade) - Memcache/Datastore/Context in AppEngine | ||||
| * [github.com/kidstuff/mongostore](https://github.com/kidstuff/mongostore) - MongoDB | ||||
| * [github.com/srinathgs/mysqlstore](https://github.com/srinathgs/mysqlstore) - MySQL | ||||
| * [github.com/EnumApps/clustersqlstore](https://github.com/EnumApps/clustersqlstore) - MySQL Cluster | ||||
| * [github.com/antonlindstrom/pgstore](https://github.com/antonlindstrom/pgstore) - PostgreSQL | ||||
| * [github.com/boj/redistore](https://github.com/boj/redistore) - Redis | ||||
| * [github.com/boj/rethinkstore](https://github.com/boj/rethinkstore) - RethinkDB | ||||
| * [github.com/boj/riakstore](https://github.com/boj/riakstore) - Riak | ||||
| * [github.com/michaeljs1990/sqlitestore](https://github.com/michaeljs1990/sqlitestore) - SQLite | ||||
| * [github.com/wader/gormstore](https://github.com/wader/gormstore) - GORM (MySQL, PostgreSQL, SQLite) | ||||
| * [github.com/gernest/qlstore](https://github.com/gernest/qlstore) - ql | ||||
| * [github.com/quasoft/memstore](https://github.com/quasoft/memstore) - In-memory implementation for use in unit tests | ||||
| * [github.com/lafriks/xormstore](https://github.com/lafriks/xormstore) - XORM (MySQL, PostgreSQL, SQLite, Microsoft SQL Server, TiDB) | ||||
| - [github.com/starJammer/gorilla-sessions-arangodb](https://github.com/starJammer/gorilla-sessions-arangodb) - ArangoDB | ||||
| - [github.com/yosssi/boltstore](https://github.com/yosssi/boltstore) - Bolt | ||||
| - [github.com/srinathgs/couchbasestore](https://github.com/srinathgs/couchbasestore) - Couchbase | ||||
| - [github.com/denizeren/dynamostore](https://github.com/denizeren/dynamostore) - Dynamodb on AWS | ||||
| - [github.com/savaki/dynastore](https://github.com/savaki/dynastore) - DynamoDB on AWS (Official AWS library) | ||||
| - [github.com/bradleypeabody/gorilla-sessions-memcache](https://github.com/bradleypeabody/gorilla-sessions-memcache) - Memcache | ||||
| - [github.com/dsoprea/go-appengine-sessioncascade](https://github.com/dsoprea/go-appengine-sessioncascade) - Memcache/Datastore/Context in AppEngine | ||||
| - [github.com/kidstuff/mongostore](https://github.com/kidstuff/mongostore) - MongoDB | ||||
| - [github.com/srinathgs/mysqlstore](https://github.com/srinathgs/mysqlstore) - MySQL | ||||
| - [github.com/EnumApps/clustersqlstore](https://github.com/EnumApps/clustersqlstore) - MySQL Cluster | ||||
| - [github.com/antonlindstrom/pgstore](https://github.com/antonlindstrom/pgstore) - PostgreSQL | ||||
| - [github.com/boj/redistore](https://github.com/boj/redistore) - Redis | ||||
| - [github.com/boj/rethinkstore](https://github.com/boj/rethinkstore) - RethinkDB | ||||
| - [github.com/boj/riakstore](https://github.com/boj/riakstore) - Riak | ||||
| - [github.com/michaeljs1990/sqlitestore](https://github.com/michaeljs1990/sqlitestore) - SQLite | ||||
| - [github.com/wader/gormstore](https://github.com/wader/gormstore) - GORM (MySQL, PostgreSQL, SQLite) | ||||
| - [github.com/gernest/qlstore](https://github.com/gernest/qlstore) - ql | ||||
| - [github.com/quasoft/memstore](https://github.com/quasoft/memstore) - In-memory implementation for use in unit tests | ||||
| - [github.com/lafriks/xormstore](https://github.com/lafriks/xormstore) - XORM (MySQL, PostgreSQL, SQLite, Microsoft SQL Server, TiDB) | ||||
|  | ||||
| ## License | ||||
|  | ||||
|   | ||||
							
								
								
									
										19
									
								
								vendor/github.com/gorilla/sessions/cookie.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/gorilla/sessions/cookie.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| // +build !go1.11 | ||||
|  | ||||
| package sessions | ||||
|  | ||||
| import "net/http" | ||||
|  | ||||
| // newCookieFromOptions returns an http.Cookie with the options set. | ||||
| func newCookieFromOptions(name, value string, options *Options) *http.Cookie { | ||||
| 	return &http.Cookie{ | ||||
| 		Name:     name, | ||||
| 		Value:    value, | ||||
| 		Path:     options.Path, | ||||
| 		Domain:   options.Domain, | ||||
| 		MaxAge:   options.MaxAge, | ||||
| 		Secure:   options.Secure, | ||||
| 		HttpOnly: options.HttpOnly, | ||||
| 	} | ||||
|  | ||||
| } | ||||
							
								
								
									
										20
									
								
								vendor/github.com/gorilla/sessions/cookie_go111.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/gorilla/sessions/cookie_go111.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| // +build go1.11 | ||||
|  | ||||
| package sessions | ||||
|  | ||||
| import "net/http" | ||||
|  | ||||
| // newCookieFromOptions returns an http.Cookie with the options set. | ||||
| func newCookieFromOptions(name, value string, options *Options) *http.Cookie { | ||||
| 	return &http.Cookie{ | ||||
| 		Name:     name, | ||||
| 		Value:    value, | ||||
| 		Path:     options.Path, | ||||
| 		Domain:   options.Domain, | ||||
| 		MaxAge:   options.MaxAge, | ||||
| 		Secure:   options.Secure, | ||||
| 		HttpOnly: options.HttpOnly, | ||||
| 		SameSite: options.SameSite, | ||||
| 	} | ||||
|  | ||||
| } | ||||
							
								
								
									
										14
									
								
								vendor/github.com/gorilla/sessions/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/gorilla/sessions/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -26,7 +26,11 @@ Let's start with an example that shows the sessions API in a nutshell: | ||||
| 		"github.com/gorilla/sessions" | ||||
| 	) | ||||
|  | ||||
| 	var store = sessions.NewCookieStore([]byte("something-very-secret")) | ||||
| 	// Note: Don't store your key in your source code. Pass it via an | ||||
| 	// environmental variable, or flag (or both), and don't accidentally commit it | ||||
| 	// alongside your code. Ensure your key is sufficiently random - i.e. use Go's | ||||
| 	// crypto/rand or securecookie.GenerateRandomKey(32) and persist the result. | ||||
| 	var store = sessions.NewCookieStore(os.Getenv("SESSION_KEY")) | ||||
|  | ||||
| 	func MyHandler(w http.ResponseWriter, r *http.Request) { | ||||
| 		// Get a session. Get() always returns a session, even if empty. | ||||
| @@ -55,14 +59,6 @@ session.Save(r, w), and either display an error message or otherwise handle it. | ||||
| Save must be called before writing to the response, otherwise the session | ||||
| cookie will not be sent to the client. | ||||
|  | ||||
| Important Note: If you aren't using gorilla/mux, you need to wrap your handlers | ||||
| with context.ClearHandler as or else you will leak memory! An easy way to do this | ||||
| is to wrap the top-level mux when calling http.ListenAndServe: | ||||
|  | ||||
|     http.ListenAndServe(":8080", context.ClearHandler(http.DefaultServeMux)) | ||||
|  | ||||
| The ClearHandler function is provided by the gorilla/context package. | ||||
|  | ||||
| That's all you need to know for the basic usage. Let's take a look at other | ||||
| options, starting with flash messages. | ||||
|  | ||||
|   | ||||
							
								
								
									
										7
									
								
								vendor/github.com/gorilla/sessions/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/gorilla/sessions/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,6 +1,3 @@ | ||||
| module "github.com/gorilla/sessions" | ||||
| module github.com/gorilla/sessions | ||||
|  | ||||
| require ( | ||||
| 	"github.com/gorilla/context" v1.1.1 | ||||
| 	"github.com/gorilla/securecookie" v1.1.1 | ||||
| ) | ||||
| require github.com/gorilla/securecookie v1.1.1 | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/gorilla/sessions/go.sum
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/gorilla/sessions/go.sum
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= | ||||
| github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= | ||||
							
								
								
									
										18
									
								
								vendor/github.com/gorilla/sessions/options.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/gorilla/sessions/options.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| // +build !go1.11 | ||||
|  | ||||
| package sessions | ||||
|  | ||||
| // Options stores configuration for a session or session store. | ||||
| // | ||||
| // Fields are a subset of http.Cookie fields. | ||||
| type Options struct { | ||||
| 	Path   string | ||||
| 	Domain string | ||||
| 	// MaxAge=0 means no Max-Age attribute specified and the cookie will be | ||||
| 	// deleted after the browser session ends. | ||||
| 	// MaxAge<0 means delete cookie immediately. | ||||
| 	// MaxAge>0 means Max-Age attribute present and given in seconds. | ||||
| 	MaxAge   int | ||||
| 	Secure   bool | ||||
| 	HttpOnly bool | ||||
| } | ||||
							
								
								
									
										22
									
								
								vendor/github.com/gorilla/sessions/options_go111.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/gorilla/sessions/options_go111.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| // +build go1.11 | ||||
|  | ||||
| package sessions | ||||
|  | ||||
| import "net/http" | ||||
|  | ||||
| // Options stores configuration for a session or session store. | ||||
| // | ||||
| // Fields are a subset of http.Cookie fields. | ||||
| type Options struct { | ||||
| 	Path   string | ||||
| 	Domain string | ||||
| 	// MaxAge=0 means no Max-Age attribute specified and the cookie will be | ||||
| 	// deleted after the browser session ends. | ||||
| 	// MaxAge<0 means delete cookie immediately. | ||||
| 	// MaxAge>0 means Max-Age attribute present and given in seconds. | ||||
| 	MaxAge   int | ||||
| 	Secure   bool | ||||
| 	HttpOnly bool | ||||
| 	// Defaults to http.SameSiteDefaultMode | ||||
| 	SameSite http.SameSite | ||||
| } | ||||
							
								
								
									
										35
									
								
								vendor/github.com/gorilla/sessions/sessions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								vendor/github.com/gorilla/sessions/sessions.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -5,34 +5,16 @@ | ||||
| package sessions | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"encoding/gob" | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/gorilla/context" | ||||
| ) | ||||
|  | ||||
| // Default flashes key. | ||||
| const flashesKey = "_flash" | ||||
|  | ||||
| // Options -------------------------------------------------------------------- | ||||
|  | ||||
| // Options stores configuration for a session or session store. | ||||
| // | ||||
| // Fields are a subset of http.Cookie fields. | ||||
| type Options struct { | ||||
| 	Path   string | ||||
| 	Domain string | ||||
| 	// MaxAge=0 means no Max-Age attribute specified and the cookie will be | ||||
| 	// deleted after the browser session ends. | ||||
| 	// MaxAge<0 means delete cookie immediately. | ||||
| 	// MaxAge>0 means Max-Age attribute present and given in seconds. | ||||
| 	MaxAge   int | ||||
| 	Secure   bool | ||||
| 	HttpOnly bool | ||||
| } | ||||
|  | ||||
| // Session -------------------------------------------------------------------- | ||||
|  | ||||
| // NewSession is called by session stores to create a new session instance. | ||||
| @@ -125,7 +107,8 @@ const registryKey contextKey = 0 | ||||
|  | ||||
| // GetRegistry returns a registry instance for the current request. | ||||
| func GetRegistry(r *http.Request) *Registry { | ||||
| 	registry := context.Get(r, registryKey) | ||||
| 	var ctx = r.Context() | ||||
| 	registry := ctx.Value(registryKey) | ||||
| 	if registry != nil { | ||||
| 		return registry.(*Registry) | ||||
| 	} | ||||
| @@ -133,7 +116,7 @@ func GetRegistry(r *http.Request) *Registry { | ||||
| 		request:  r, | ||||
| 		sessions: make(map[string]sessionInfo), | ||||
| 	} | ||||
| 	context.Set(r, registryKey, newRegistry) | ||||
| 	*r = *r.WithContext(context.WithValue(ctx, registryKey, newRegistry)) | ||||
| 	return newRegistry | ||||
| } | ||||
|  | ||||
| @@ -195,15 +178,7 @@ func Save(r *http.Request, w http.ResponseWriter) error { | ||||
| // the Expires field calculated based on the MaxAge value, for Internet | ||||
| // Explorer compatibility. | ||||
| func NewCookie(name, value string, options *Options) *http.Cookie { | ||||
| 	cookie := &http.Cookie{ | ||||
| 		Name:     name, | ||||
| 		Value:    value, | ||||
| 		Path:     options.Path, | ||||
| 		Domain:   options.Domain, | ||||
| 		MaxAge:   options.MaxAge, | ||||
| 		Secure:   options.Secure, | ||||
| 		HttpOnly: options.HttpOnly, | ||||
| 	} | ||||
| 	cookie := newCookieFromOptions(name, value, options) | ||||
| 	if options.MaxAge > 0 { | ||||
| 		d := time.Duration(options.MaxAge) * time.Second | ||||
| 		cookie.Expires = time.Now().Add(d) | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/github.com/gorilla/sessions/store.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/gorilla/sessions/store.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -47,9 +47,6 @@ type Store interface { | ||||
| // It is recommended to use an authentication key with 32 or 64 bytes. | ||||
| // The encryption key, if set, must be either 16, 24, or 32 bytes to select | ||||
| // AES-128, AES-192, or AES-256 modes. | ||||
| // | ||||
| // Use the convenience function securecookie.GenerateRandomKey() to create | ||||
| // strong keys. | ||||
| func NewCookieStore(keyPairs ...[]byte) *CookieStore { | ||||
| 	cs := &CookieStore{ | ||||
| 		Codecs: securecookie.CodecsFromPairs(keyPairs...), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user