(w http.ResponseWriter, r *http.Request)
| 469 | } |
| 470 | } |
| 471 | func (h *WebUiHandler) handleLogin(w http.ResponseWriter, r *http.Request) { |
| 472 | |
| 473 | if r.Method != "GET" { |
| 474 | w.WriteHeader(405) |
| 475 | w.Write([]byte("Invalid method for login")) |
| 476 | } |
| 477 | |
| 478 | r.ParseForm() |
| 479 | |
| 480 | tokenList, ok := r.Form["access_token"] |
| 481 | |
| 482 | if !ok { |
| 483 | w.WriteHeader(400) |
| 484 | w.Write([]byte("Token required for login")) |
| 485 | return |
| 486 | } |
| 487 | |
| 488 | token := tokenList[0] |
| 489 | |
| 490 | if h.auth.Authorized(token) { |
| 491 | cookie := &http.Cookie{ |
| 492 | Name: "access_token", |
| 493 | Value: token, |
| 494 | Secure: true, |
| 495 | HttpOnly: true, |
| 496 | MaxAge: 86400 * 365, |
| 497 | } |
| 498 | http.SetCookie(w, cookie) |
| 499 | http.Redirect(w, r, "/tunnels", 303) |
| 500 | } else { |
| 501 | h.sendLoginPage(w, r, 403) |
| 502 | return |
| 503 | } |
| 504 | } |
| 505 | |
| 506 | func (h *WebUiHandler) handleTunnels(w http.ResponseWriter, r *http.Request, tokenData TokenData, user User) { |
| 507 |
no test coverage detected