| 98 | } |
| 99 | |
| 100 | func NewSessionPersister(redisURI string, contextKey *contextKeyT, cookieName *string, headerName *string) *SessionPersister { |
| 101 | var realContextKey contextKeyT |
| 102 | if contextKey == nil { |
| 103 | realContextKey = contextKeyT("context-session") |
| 104 | } else { |
| 105 | realContextKey = *contextKey |
| 106 | } |
| 107 | var realCookieName string |
| 108 | if cookieName == nil { |
| 109 | realCookieName = "session" |
| 110 | } else { |
| 111 | realCookieName = *cookieName |
| 112 | } |
| 113 | var useCookie bool = true |
| 114 | var realHeaderName string = "" |
| 115 | if headerName != nil { |
| 116 | realHeaderName = *headerName |
| 117 | } |
| 118 | if realHeaderName != "" { |
| 119 | useCookie = false |
| 120 | } |
| 121 | return &SessionPersister{ |
| 122 | redisURI, |
| 123 | realContextKey, |
| 124 | realCookieName, |
| 125 | logging.GetLogger("httpserver"), |
| 126 | useCookie, |
| 127 | realHeaderName, |
| 128 | } |
| 129 | } |
| 130 | |
| 131 | func (sp *SessionPersister) Middleware(next http.Handler) http.Handler { |
| 132 | return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |