12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package main
- import (
- "fmt"
- "net/http"
- "strings"
- )
- /*
- router.go
- This script holds the static resources router
- for the reverse proxy service
- */
- func AuthFsHandler(handler http.Handler) http.Handler {
- return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- // Allow access to /script/*, /img/pubic/* and /login.html without authentication
- if strings.HasPrefix(r.URL.Path, "/script/") || strings.HasPrefix(r.URL.Path, "/img/public/") || r.URL.Path == "/login.html" || r.URL.Path == "/favicon.png" {
- handler.ServeHTTP(w, r)
- return
- }
- // check authentication
- if !authAgent.CheckAuth(r) {
- http.Redirect(w, r, "/login.html", http.StatusTemporaryRedirect)
- return
- }
- //For WebSSH Routing
- //Example URL Path: /web.ssh/{{instance_uuid}}/*
- if strings.HasPrefix(r.URL.Path, "/web.ssh/") {
- parts := strings.Split(r.URL.Path, "/")
- if len(parts) > 2 {
- instanceUUID := parts[2]
- fmt.Println(instanceUUID)
- }
- }
- //Authenticated
- handler.ServeHTTP(w, r)
- })
- }
|