auth

Paddy 2014-09-01 Parent:1aa3a85ff853

24:c5c4a991bc35 Go to Latest

auth/context.go.old

Remove the deprecated storage file. We're no longer using the osin storage system, so let's remove our old storage file completely.

History
paddy@23 1 package auth
paddy@23 2
paddy@23 3 import (
paddy@23 4 "encoding/json"
paddy@23 5 "html/template"
paddy@23 6 "io"
paddy@23 7 "log"
paddy@23 8 "net/http"
paddy@23 9
paddy@23 10 "github.com/justinas/nosurf"
paddy@23 11 )
paddy@23 12
paddy@23 13 type Context struct {
paddy@23 14 Config ServerConfig
paddy@23 15 Clients ClientStore
paddy@23 16 Tokens TokenStore
paddy@23 17 Profiles ProfileStore
paddy@23 18 Sessions SessionStore
paddy@23 19 Log *log.Logger
paddy@23 20 Templates Templates
paddy@23 21 }
paddy@23 22
paddy@23 23 type Templates struct {
paddy@23 24 Error *template.Template
paddy@23 25 Confirmation *template.Template
paddy@23 26 Login *template.Template
paddy@23 27 }
paddy@23 28
paddy@23 29 type jsonError struct {
paddy@23 30 Error string `json:"error,omitempty"`
paddy@23 31 Description string `json:"error_description,omitempty"`
paddy@23 32 URI string `json:"error_uri,omitempty"`
paddy@23 33 State string `json:"state,omitempty"`
paddy@23 34 }
paddy@23 35
paddy@23 36 func (c Context) RenderError(w io.Writer, err error) {
paddy@23 37 if c.Templates.Error == nil {
paddy@23 38 log.Println("Error template is nil, can't render error.")
paddy@23 39 return
paddy@23 40 }
paddy@23 41 renderErr := c.Templates.Error.Execute(w, map[string]interface{}{
paddy@23 42 "err": err,
paddy@23 43 })
paddy@23 44 if renderErr != nil {
paddy@23 45 log.Printf("Error executing error template (oh, the irony): %s\n", renderErr)
paddy@23 46 return
paddy@23 47 }
paddy@23 48 }
paddy@23 49
paddy@23 50 func (c Context) RenderJSONError(w io.Writer, code, description, baseURI string) {
paddy@23 51 d, err := json.Marshal(jsonError{
paddy@23 52 Error: code,
paddy@23 53 Description: description,
paddy@23 54 URI: baseURI,
paddy@23 55 })
paddy@23 56 if err != nil {
paddy@23 57 log.Printf("Error marshalling json error (oh, the irony): %s\n", err)
paddy@23 58 return
paddy@23 59 }
paddy@23 60 _, err = w.Write(d)
paddy@23 61 if err != nil {
paddy@23 62 log.Printf("Error writing json error: %s\n", err)
paddy@23 63 return
paddy@23 64 }
paddy@23 65 }
paddy@23 66
paddy@23 67 func (c Context) RenderConfirmation(w io.Writer, r *http.Request, req AuthRequest) {
paddy@23 68 if c.Templates.Confirmation == nil {
paddy@23 69 log.Println("Confirmation template is nil, can't render confirmation.")
paddy@23 70 return
paddy@23 71 }
paddy@23 72 err := c.Templates.Confirmation.Execute(w, map[string]interface{}{
paddy@23 73 "scope": req.Scope,
paddy@23 74 "client": req.Client,
paddy@23 75 "csrf_token": nosurf.Token(r),
paddy@23 76 })
paddy@23 77 if err != nil {
paddy@23 78 log.Printf("Error executing confirmation template: %s\n", err)
paddy@23 79 return
paddy@23 80 }
paddy@23 81 }
paddy@23 82
paddy@23 83 func (c Context) RenderLogin(w io.Writer, r *http.Request) {
paddy@23 84 if c.Templates.Login == nil {
paddy@23 85 log.Println("Login template is nil, can't render confirmation.")
paddy@23 86 return
paddy@23 87 }
paddy@23 88 err := c.Templates.Login.Execute(w, map[string]interface{}{
paddy@23 89 "csrf_token": nosurf.Token(r),
paddy@23 90 })
paddy@23 91 if err != nil {
paddy@23 92 log.Printf("Error executing login template: %s\n", err)
paddy@23 93 return
paddy@23 94 }
paddy@23 95 }
paddy@23 96
paddy@23 97 func (c Context) RenderJSONToken(w io.Writer, data AccessData) {
paddy@23 98 d, err := json.Marshal(data)
paddy@23 99 if err != nil {
paddy@23 100 log.Printf("Error marshalling json token: %s\n", err)
paddy@23 101 return
paddy@23 102 }
paddy@23 103 _, err = w.Write(d)
paddy@23 104 if err != nil {
paddy@23 105 log.Printf("Error writing json token: %s\n", err)
paddy@23 106 return
paddy@23 107 }
paddy@23 108 }