auth

Paddy 2015-01-24 Parent:2e4b5722eed0 Child:8267e1c8bcd1

131:f474ce964dcf Go to Latest

auth/authd/server.go

Implement handlers for retrieving clients. Create a GetClientHandler and ListClientsHandler for retrieving details about a client. Currently, we're not returning the client secret for these clients. We're also not doing any auth. We may want to restrict auth to the owner of the clients, and return secrets only when auth'd, and maybe even only when a special header is included. Alternatively, we could only return the secret when retrieving a single client. Still unsure how I want to handle that.

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 }