Для проверки авторизации мне нужно знать маршрут внутри промежуточного ПО авторизации.Я проверил документы из го-чи и сделал это так:
func Authenticator(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// .............
next.ServeHTTP(w, r)
routePattern := chi.RouteContext(r.Context()).RoutePattern()
fmt.Println("AUTHORIZATION:", routePattern, route)
routepath := strings.Replace(routePattern, "/v1", "", 1) // todo use api prefix from config
routepath = strings.Replace(routepath, "/*", "", 1)
fmt.Println("ROUTEPATH:", routepath, route)
if !CheckAuthorization(*token, routepath, method, "*", "*", "*") {
http.Error(w, http.StatusText(401), 401)
return
}
})
}
, что дает мне то, что мне нужно.Но теперь очевидно, что авторизация пройдена, поэтому, если проверка на обработчик routepattern уже выполнена (запись результата клиенту)
Есть ли другой способ получить маршрут внутри промежуточного программного обеспечения без next.ServerHTTP (w, r)перед проверкой RoutePattern ()?