fix #1152
Showing
1 changed file
with
17 additions
and
3 deletions
| ... | @@ -147,7 +147,7 @@ func (manager *Manager) SessionStart(w http.ResponseWriter, r *http.Request) (se | ... | @@ -147,7 +147,7 @@ func (manager *Manager) SessionStart(w http.ResponseWriter, r *http.Request) (se |
| 147 | Value: url.QueryEscape(sid), | 147 | Value: url.QueryEscape(sid), |
| 148 | Path: "/", | 148 | Path: "/", |
| 149 | HttpOnly: true, | 149 | HttpOnly: true, |
| 150 | Secure: manager.config.Secure, | 150 | Secure: manager.isSecure(r), |
| 151 | Domain: manager.config.Domain} | 151 | Domain: manager.config.Domain} |
| 152 | if manager.config.CookieLifeTime > 0 { | 152 | if manager.config.CookieLifeTime > 0 { |
| 153 | cookie.MaxAge = manager.config.CookieLifeTime | 153 | cookie.MaxAge = manager.config.CookieLifeTime |
| ... | @@ -174,7 +174,7 @@ func (manager *Manager) SessionStart(w http.ResponseWriter, r *http.Request) (se | ... | @@ -174,7 +174,7 @@ func (manager *Manager) SessionStart(w http.ResponseWriter, r *http.Request) (se |
| 174 | Value: url.QueryEscape(sid), | 174 | Value: url.QueryEscape(sid), |
| 175 | Path: "/", | 175 | Path: "/", |
| 176 | HttpOnly: true, | 176 | HttpOnly: true, |
| 177 | Secure: manager.config.Secure, | 177 | Secure: manager.isSecure(r), |
| 178 | Domain: manager.config.Domain} | 178 | Domain: manager.config.Domain} |
| 179 | if manager.config.CookieLifeTime > 0 { | 179 | if manager.config.CookieLifeTime > 0 { |
| 180 | cookie.MaxAge = manager.config.CookieLifeTime | 180 | cookie.MaxAge = manager.config.CookieLifeTime |
| ... | @@ -233,7 +233,7 @@ func (manager *Manager) SessionRegenerateId(w http.ResponseWriter, r *http.Reque | ... | @@ -233,7 +233,7 @@ func (manager *Manager) SessionRegenerateId(w http.ResponseWriter, r *http.Reque |
| 233 | Value: url.QueryEscape(sid), | 233 | Value: url.QueryEscape(sid), |
| 234 | Path: "/", | 234 | Path: "/", |
| 235 | HttpOnly: true, | 235 | HttpOnly: true, |
| 236 | Secure: manager.config.Secure, | 236 | Secure: manager.isSecure(r), |
| 237 | Domain: manager.config.Domain, | 237 | Domain: manager.config.Domain, |
| 238 | } | 238 | } |
| 239 | } else { | 239 | } else { |
| ... | @@ -270,3 +270,17 @@ func (manager *Manager) sessionId(r *http.Request) (string, error) { | ... | @@ -270,3 +270,17 @@ func (manager *Manager) sessionId(r *http.Request) (string, error) { |
| 270 | } | 270 | } |
| 271 | return hex.EncodeToString(b), nil | 271 | return hex.EncodeToString(b), nil |
| 272 | } | 272 | } |
| 273 | |||
| 274 | // Set cookie with https. | ||
| 275 | func (manager *Manager) isSecure(req *http.Request) bool { | ||
| 276 | if !manager.config.Secure { | ||
| 277 | return false | ||
| 278 | } | ||
| 279 | if req.URL.Scheme != "" { | ||
| 280 | return req.URL.Scheme == "https" | ||
| 281 | } | ||
| 282 | if req.TLS == nil { | ||
| 283 | return false | ||
| 284 | } | ||
| 285 | return true | ||
| 286 | } | ... | ... |
-
Please register or sign in to post a comment