parent
							
								
									461406070c
								
							
						
					
					
						commit
						ce43d38b4f
					
				
							
								
								
									
										2
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										2
									
								
								go.mod
								
								
								
								
							|  | @ -5,7 +5,7 @@ go 1.14 | ||||||
| require ( | require ( | ||||||
| 	code.gitea.io/gitea-vet v0.2.1 | 	code.gitea.io/gitea-vet v0.2.1 | ||||||
| 	code.gitea.io/sdk/gitea v0.13.1 | 	code.gitea.io/sdk/gitea v0.13.1 | ||||||
| 	gitea.com/go-chi/session v0.0.0-20201218134809-7209fa084f27 | 	gitea.com/go-chi/session v0.0.0-20210108030337-0cb48c5ba8ee | ||||||
| 	gitea.com/lunny/levelqueue v0.3.0 | 	gitea.com/lunny/levelqueue v0.3.0 | ||||||
| 	gitea.com/macaron/binding v0.0.0-20190822013154-a5f53841ed2b | 	gitea.com/macaron/binding v0.0.0-20190822013154-a5f53841ed2b | ||||||
| 	gitea.com/macaron/cache v0.0.0-20200924044943-905232fba10b | 	gitea.com/macaron/cache v0.0.0-20200924044943-905232fba10b | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										4
									
								
								go.sum
								
								
								
								
							|  | @ -40,8 +40,8 @@ code.gitea.io/gitea-vet v0.2.1/go.mod h1:zcNbT/aJEmivCAhfmkHOlT645KNOf9W2KnkLgFj | ||||||
| code.gitea.io/sdk/gitea v0.13.1 h1:Y7bpH2iO6Q0KhhMJfjP/LZ0AmiYITeRQlCD8b0oYqhk= | code.gitea.io/sdk/gitea v0.13.1 h1:Y7bpH2iO6Q0KhhMJfjP/LZ0AmiYITeRQlCD8b0oYqhk= | ||||||
| code.gitea.io/sdk/gitea v0.13.1/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY= | code.gitea.io/sdk/gitea v0.13.1/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY= | ||||||
| dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= | dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= | ||||||
| gitea.com/go-chi/session v0.0.0-20201218134809-7209fa084f27 h1:cdb1OTNXGLwQ55gg+9tIPWufdsnrHWcIq8Qs+j/E8JU= | gitea.com/go-chi/session v0.0.0-20210108030337-0cb48c5ba8ee h1:9U6HuKUBt/cGK6T/64dEuz0r7Yp97WAAEJvXHDlY3ws= | ||||||
| gitea.com/go-chi/session v0.0.0-20201218134809-7209fa084f27/go.mod h1:Ozg8IchVNb/Udg+ui39iHRYqVHSvf3C99ixdpLR8Vu0= | gitea.com/go-chi/session v0.0.0-20210108030337-0cb48c5ba8ee/go.mod h1:Ozg8IchVNb/Udg+ui39iHRYqVHSvf3C99ixdpLR8Vu0= | ||||||
| gitea.com/lunny/levelqueue v0.3.0 h1:MHn1GuSZkxvVEDMyAPqlc7A3cOW+q8RcGhRgH/xtm6I= | gitea.com/lunny/levelqueue v0.3.0 h1:MHn1GuSZkxvVEDMyAPqlc7A3cOW+q8RcGhRgH/xtm6I= | ||||||
| gitea.com/lunny/levelqueue v0.3.0/go.mod h1:HBqmLbz56JWpfEGG0prskAV97ATNRoj5LDmPicD22hU= | gitea.com/lunny/levelqueue v0.3.0/go.mod h1:HBqmLbz56JWpfEGG0prskAV97ATNRoj5LDmPicD22hU= | ||||||
| gitea.com/lunny/log v0.0.0-20190322053110-01b5df579c4e h1:r1en/D7xJmcY24VkHkjkcJFa+7ZWubVWPBrvsHkmHxk= | gitea.com/lunny/log v0.0.0-20190322053110-01b5df579c4e h1:r1en/D7xJmcY24VkHkjkcJFa+7ZWubVWPBrvsHkmHxk= | ||||||
|  |  | ||||||
|  | @ -176,6 +176,10 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | var ( | ||||||
|  | 	sessionManager *session.Manager | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| // NewChi creates a chi Router
 | // NewChi creates a chi Router
 | ||||||
| func NewChi() chi.Router { | func NewChi() chi.Router { | ||||||
| 	c := chi.NewRouter() | 	c := chi.NewRouter() | ||||||
|  | @ -185,7 +189,8 @@ func NewChi() chi.Router { | ||||||
| 			c.Use(LoggerHandler(setting.RouterLogLevel)) | 			c.Use(LoggerHandler(setting.RouterLogLevel)) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	c.Use(session.Sessioner(session.Options{ | 
 | ||||||
|  | 	var opt = session.Options{ | ||||||
| 		Provider:       setting.SessionConfig.Provider, | 		Provider:       setting.SessionConfig.Provider, | ||||||
| 		ProviderConfig: setting.SessionConfig.ProviderConfig, | 		ProviderConfig: setting.SessionConfig.ProviderConfig, | ||||||
| 		CookieName:     setting.SessionConfig.CookieName, | 		CookieName:     setting.SessionConfig.CookieName, | ||||||
|  | @ -194,7 +199,14 @@ func NewChi() chi.Router { | ||||||
| 		Maxlifetime:    setting.SessionConfig.Maxlifetime, | 		Maxlifetime:    setting.SessionConfig.Maxlifetime, | ||||||
| 		Secure:         setting.SessionConfig.Secure, | 		Secure:         setting.SessionConfig.Secure, | ||||||
| 		Domain:         setting.SessionConfig.Domain, | 		Domain:         setting.SessionConfig.Domain, | ||||||
| 	})) | 	} | ||||||
|  | 	opt = session.PrepareOptions([]session.Options{opt}) | ||||||
|  | 
 | ||||||
|  | 	var err error | ||||||
|  | 	sessionManager, err = session.NewManager(opt.Provider, opt) | ||||||
|  | 	if err != nil { | ||||||
|  | 		panic(err) | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	c.Use(Recovery()) | 	c.Use(Recovery()) | ||||||
| 	if setting.EnableAccessLog { | 	if setting.EnableAccessLog { | ||||||
|  |  | ||||||
|  | @ -14,7 +14,6 @@ import ( | ||||||
| 	"code.gitea.io/gitea/modules/setting" | 	"code.gitea.io/gitea/modules/setting" | ||||||
| 	"code.gitea.io/gitea/modules/templates" | 	"code.gitea.io/gitea/modules/templates" | ||||||
| 
 | 
 | ||||||
| 	"gitea.com/go-chi/session" |  | ||||||
| 	"github.com/unrolled/render" | 	"github.com/unrolled/render" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -64,7 +63,13 @@ func Recovery() func(next http.Handler) http.Handler { | ||||||
| 					log.Error("%v", combinedErr) | 					log.Error("%v", combinedErr) | ||||||
| 
 | 
 | ||||||
| 					lc := middlewares.Locale(w, req) | 					lc := middlewares.Locale(w, req) | ||||||
| 					sess := session.GetSession(req) | 
 | ||||||
|  | 					// TODO: this should be replaced by real session after macaron removed totally
 | ||||||
|  | 					sessionStore, err := sessionManager.Start(w, req) | ||||||
|  | 					if err != nil { | ||||||
|  | 						// Just invoke the above recover catch
 | ||||||
|  | 						panic("session(start): " + err.Error()) | ||||||
|  | 					} | ||||||
| 
 | 
 | ||||||
| 					var store = dataStore{ | 					var store = dataStore{ | ||||||
| 						Data: templates.Vars{ | 						Data: templates.Vars{ | ||||||
|  | @ -75,7 +80,7 @@ func Recovery() func(next http.Handler) http.Handler { | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
| 					// Get user from session if logged in.
 | 					// Get user from session if logged in.
 | ||||||
| 					user, _ := sso.SignedInUser(req, w, &store, sess) | 					user, _ := sso.SignedInUser(req, w, &store, sessionStore) | ||||||
| 					if user != nil { | 					if user != nil { | ||||||
| 						store.Data["IsSigned"] = true | 						store.Data["IsSigned"] = true | ||||||
| 						store.Data["SignedUser"] = user | 						store.Data["SignedUser"] = user | ||||||
|  | @ -92,7 +97,7 @@ func Recovery() func(next http.Handler) http.Handler { | ||||||
| 					if setting.RunMode != "prod" { | 					if setting.RunMode != "prod" { | ||||||
| 						store.Data["ErrMsg"] = combinedErr | 						store.Data["ErrMsg"] = combinedErr | ||||||
| 					} | 					} | ||||||
| 					err := rnd.HTML(w, 500, "status/500", templates.BaseVars().Merge(store.Data)) | 					err = rnd.HTML(w, 500, "status/500", templates.BaseVars().Merge(store.Data)) | ||||||
| 					if err != nil { | 					if err != nil { | ||||||
| 						log.Error("%v", err) | 						log.Error("%v", err) | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
|  | @ -101,7 +101,8 @@ type Options struct { | ||||||
| 	FlashEncryptionKey string | 	FlashEncryptionKey string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func prepareOptions(options []Options) Options { | // PrepareOptions gives some default values for options
 | ||||||
|  | func PrepareOptions(options []Options) Options { | ||||||
| 	var opt Options | 	var opt Options | ||||||
| 	if len(options) > 0 { | 	if len(options) > 0 { | ||||||
| 		opt = options[0] | 		opt = options[0] | ||||||
|  | @ -231,7 +232,7 @@ func NewCookie(name string, value string, others ...interface{}) *http.Cookie { | ||||||
| // Sessioner is a middleware that maps a session.SessionStore service into the Macaron handler chain.
 | // Sessioner is a middleware that maps a session.SessionStore service into the Macaron handler chain.
 | ||||||
| // An single variadic session.Options struct can be optionally provided to configure.
 | // An single variadic session.Options struct can be optionally provided to configure.
 | ||||||
| func Sessioner(options ...Options) func(next http.Handler) http.Handler { | func Sessioner(options ...Options) func(next http.Handler) http.Handler { | ||||||
| 	opt := prepareOptions(options) | 	opt := PrepareOptions(options) | ||||||
| 	manager, err := NewManager(opt.Provider, opt) | 	manager, err := NewManager(opt.Provider, opt) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ code.gitea.io/gitea-vet/checks | ||||||
| # code.gitea.io/sdk/gitea v0.13.1 | # code.gitea.io/sdk/gitea v0.13.1 | ||||||
| ## explicit | ## explicit | ||||||
| code.gitea.io/sdk/gitea | code.gitea.io/sdk/gitea | ||||||
| # gitea.com/go-chi/session v0.0.0-20201218134809-7209fa084f27 | # gitea.com/go-chi/session v0.0.0-20210108030337-0cb48c5ba8ee | ||||||
| ## explicit | ## explicit | ||||||
| gitea.com/go-chi/session | gitea.com/go-chi/session | ||||||
| gitea.com/go-chi/session/couchbase | gitea.com/go-chi/session/couchbase | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue