From d79ca62c97aad58db1cd7f40ddc88c6e390920d5 Mon Sep 17 00:00:00 2001 From: Randall Meyer Date: Fri, 26 Mar 2021 17:02:32 -0700 Subject: [PATCH] statichit: misc. fixes Anchor request to remapped path and allow for relative --file-paths --- plugins/experimental/statichit/statichit.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/experimental/statichit/statichit.cc b/plugins/experimental/statichit/statichit.cc index b362ba409af..8f06be1493e 100644 --- a/plugins/experimental/statichit/statichit.cc +++ b/plugins/experimental/statichit/statichit.cc @@ -571,6 +571,15 @@ TSRemapDoRemap(void *ih, TSHttpTxn rh, TSRemapRequestInfo *rri) return TSREMAP_NO_REMAP; } + // Anchor to URL specified in remap + int pathsz; + TSUrlPathGet(rri->requestBufp, rri->requestUrl, &pathsz); + if (pathsz > 0) { + VERROR("Path is not an exact match. Rejecting!"); + TSHttpTxnStatusSet(rh, TS_HTTP_STATUS_NOT_FOUND); + return TSREMAP_NO_REMAP; + } + if (!cfg->maxAge) { TSHttpTxnConfigIntSet(rh, TS_CONFIG_HTTP_CACHE_HTTP, 0); StaticHitSetupIntercept(static_cast(ih), rh); @@ -631,6 +640,10 @@ TSRemapNewInstance(int argc, char *argv[], void **ih, char * /* errbuf ATS_UNUSE return TS_ERROR; } + if (filePath.find("/") != 0) { + filePath = std::string(TSConfigDirGet()) + '/' + filePath; + } + StaticHitConfig *tc = new StaticHitConfig(filePath, mimeType); if (maxAge > 0) { tc->maxAge = maxAge;