diff options
Diffstat (limited to 'handlers/passthrough.go')
| -rw-r--r-- | handlers/passthrough.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/handlers/passthrough.go b/handlers/passthrough.go index b2daa88..3f8aafc 100644 --- a/handlers/passthrough.go +++ b/handlers/passthrough.go @@ -2,6 +2,7 @@ package handlers import ( "github.com/valyala/fasthttp" + "net/http" "portgate" ) @@ -9,9 +10,14 @@ import ( // If the user is authorized they are allowed to pass, otherwise they should be redirected to // the authentication page. (/_portgate) func (h *RequestHandler) handlePassthroughRequest(ctx *fasthttp.RequestCtx, p portgate.Path) { - // TODO: Check authorization. // TODO: Check whether port is allowed to be accessed. + // Check whether given cookie is ok, if not redirect to the authentication page. + if !portgate.VerifyTokenFromCookie(h.config, ctx) { + ctx.Redirect("/_portgate", http.StatusTemporaryRedirect) + return + } + // We reuse the request given to us by the user with minor changes to route it to the // destination host. ctx.Request.SetRequestURI(h.config.MakeUrl(p)) |
