auth

Paddy 2015-03-21 Parent:2e4b5722eed0 Child:8267e1c8bcd1

148:06fb735031bb Go to Latest

auth/authd/server.go

Do a first, naive pass at storing profiles in Postgres. This is untested against an actual database. It's a best-guess attempt at SQL. It _should_ work. I think. Start storing things in Postgres, starting with Profiles and Logins. This necessitates the addition of a Deleted property to the Profile type, because I'm not deleting those in case of accidental deletion. Logins, though, we'll delete. This also necessitates updating the profileStore interface to no longer have a deleteProfile method, because we're tracking that through updates now. Then we need to update our profileStore tests, because they no longer clean up after themselves. Which, come to think of it, may cause some problems later.

History
paddy@100 1 package main
paddy@100 2
paddy@100 3 import (
paddy@100 4 "html/template"
paddy@100 5 "log"
paddy@100 6 "net/http"
paddy@100 7
paddy@107 8 "code.secondbit.org/auth.hg"
paddy@100 9 "github.com/gorilla/mux"
paddy@100 10 )
paddy@100 11
paddy@100 12 func main() {
paddy@100 13 store := auth.NewMemstore()
paddy@100 14 config := auth.Config{
paddy@100 15 ClientStore: store,
paddy@100 16 AuthCodeStore: store,
paddy@100 17 ProfileStore: store,
paddy@100 18 TokenStore: store,
paddy@100 19 SessionStore: store,
paddy@100 20 Template: template.Must(template.New("base").ParseGlob("./templates/*.gotmpl")),
paddy@100 21 LoginURI: "/login",
paddy@100 22 }
paddy@106 23 err := config.Init()
paddy@106 24 if err != nil {
paddy@106 25 log.Fatal(err)
paddy@106 26 }
paddy@100 27 context, err := auth.NewContext(config)
paddy@100 28 if err != nil {
paddy@100 29 panic(err)
paddy@100 30 }
paddy@100 31
paddy@100 32 router := mux.NewRouter()
paddy@100 33 auth.RegisterOAuth2(router, context)
paddy@100 34 auth.RegisterSessionHandlers(router, context)
paddy@106 35 auth.RegisterProfileHandlers(router, context)
paddy@108 36 auth.RegisterClientHandlers(router, context)
paddy@100 37 http.Handle("/", router)
paddy@100 38 log.Fatal(http.ListenAndServe(":8080", nil))
paddy@100 39 }