Auth + Encryption for cookies, based on SessionSecret via SHA512
This commit is contained in:
		
							parent
							
								
									6292424591
								
							
						
					
					
						commit
						91427427f2
					
				
							
								
								
									
										3
									
								
								main.go
								
								
								
								
							
							
						
						
									
										3
									
								
								main.go
								
								
								
								
							|  | @ -1,6 +1,7 @@ | |||
| package main | ||||
| 
 | ||||
| import ( | ||||
| 	"crypto/sha512" | ||||
| 	"embed" | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
|  | @ -136,7 +137,7 @@ func init() { | |||
| 	util.SendgridApiKey = flagSendgridApiKey | ||||
| 	util.EmailFrom = flagEmailFrom | ||||
| 	util.EmailFromName = flagEmailFromName | ||||
| 	util.SessionSecret = []byte(flagSessionSecret) | ||||
| 	util.SessionSecret = sha512.Sum512([]byte(flagSessionSecret)) | ||||
| 	util.WgConfTemplate = flagWgConfTemplate | ||||
| 	util.BasePath = util.ParseBasePath(flagBasePath) | ||||
| 	util.SubnetRanges = util.ParseSubnetRanges(flagSubnetRanges) | ||||
|  |  | |||
|  | @ -48,9 +48,20 @@ func (t *TemplateRegistry) Render(w io.Writer, name string, data interface{}, c | |||
| } | ||||
| 
 | ||||
| // New function
 | ||||
| func New(tmplDir fs.FS, extraData map[string]interface{}, secret []byte) *echo.Echo { | ||||
| func New(tmplDir fs.FS, extraData map[string]interface{}, secret [64]byte) *echo.Echo { | ||||
| 	e := echo.New() | ||||
| 	e.Use(session.Middleware(sessions.NewCookieStore(secret))) | ||||
| 
 | ||||
| 	cookiePath := util.BasePath | ||||
| 	if cookiePath == "" { | ||||
| 		cookiePath = "/" | ||||
| 	} | ||||
| 
 | ||||
| 	cookieStore := sessions.NewCookieStore(secret[:32], secret[32:]) | ||||
| 	cookieStore.Options.Path = cookiePath | ||||
| 	cookieStore.Options.HttpOnly = true | ||||
| 	cookieStore.MaxAge(86400 * 7) | ||||
| 
 | ||||
| 	e.Use(session.Middleware(cookieStore)) | ||||
| 
 | ||||
| 	// read html template file to string
 | ||||
| 	tmplBaseString, err := util.StringFromEmbedFile(tmplDir, "base.html") | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ var ( | |||
| 	SendgridApiKey    string | ||||
| 	EmailFrom         string | ||||
| 	EmailFromName     string | ||||
| 	SessionSecret     []byte | ||||
| 	SessionSecret     [64]byte | ||||
| 	WgConfTemplate    string | ||||
| 	BasePath          string | ||||
| 	SubnetRanges      map[string]([]*net.IPNet) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue