summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorKevin Chabowski <kevin@kch42.de>2013-08-30 13:46:34 +0200
committerKevin Chabowski <kevin@kch42.de>2013-08-30 13:46:34 +0200
commitbf1207d7f3a4e95124c5f1498f96fad298e496a6 (patch)
treeef6317abdddbbbf8da152b7f18d1f15720019381 /main.go
parent5c0a901b1b3e522ed523e966feb9901b8c7e01ff (diff)
downloadmailremind-bf1207d7f3a4e95124c5f1498f96fad298e496a6.tar.gz
mailremind-bf1207d7f3a4e95124c5f1498f96fad298e496a6.tar.bz2
mailremind-bf1207d7f3a4e95124c5f1498f96fad298e496a6.zip
Implemented Logout and improved sessions
Diffstat (limited to 'main.go')
-rw-r--r--main.go28
1 files changed, 26 insertions, 2 deletions
diff --git a/main.go b/main.go
index 8af1fc1..0289256 100644
--- a/main.go
+++ b/main.go
@@ -1,10 +1,10 @@
package main
import (
+ "encoding/hex"
"flag"
"fmt"
"github.com/gorilla/mux"
- "github.com/gorilla/securecookie"
"github.com/gorilla/sessions"
"github.com/kch42/simpleconf"
_ "kch42.de/gostuff/mailremind/model/mysql"
@@ -19,7 +19,29 @@ func debug(rw http.ResponseWriter, req *http.Request) {
var conf simpleconf.Config
var baseurl string
-var SessionStorage = sessions.NewCookieStore(securecookie.GenerateRandomKey(32), securecookie.GenerateRandomKey(32))
+var SessionStorage sessions.Store
+
+func initSessions() {
+ _auth, err := conf.GetString("securecookies", "auth")
+ if err != nil {
+ log.Fatalf("Could not get securecookies.auth from config: %s", err)
+ }
+ auth, err := hex.DecodeString(_auth)
+ if err != nil {
+ log.Fatalf("Could not decode securecookies.auth as hex: %s", err)
+ }
+
+ _crypt, err := conf.GetString("securecookies", "crypt")
+ if err != nil {
+ log.Fatalf("Could not get securecookies.crypt from config: %s", err)
+ }
+ crypt, err := hex.DecodeString(_crypt)
+ if err != nil {
+ log.Fatalf("Could not decode securecookies.auth as hex: %s", err)
+ }
+
+ SessionStorage = sessions.NewCookieStore(auth, crypt)
+}
func main() {
confpath := flag.String("config", "", "Path to config file")
@@ -34,6 +56,7 @@ func main() {
log.Fatalf("Could not get web.baseurl from config: %s", err)
}
+ initSessions()
initTpls()
loadTimeLocs()
initMailing()
@@ -57,6 +80,7 @@ func main() {
router.HandleFunc("/activate", activate)
router.HandleFunc("/login", login)
router.HandleFunc("/logincheck", logincheck)
+ router.HandleFunc("/logout", logout)
http.Handle("/", router)