diff --git a/app/proprietary/src/main/java/stirling/software/proprietary/security/filter/EnterpriseEndpointFilter.java b/app/proprietary/src/main/java/stirling/software/proprietary/security/filter/EnterpriseEndpointFilter.java index 22c56aecd..a0165a28c 100644 --- a/app/proprietary/src/main/java/stirling/software/proprietary/security/filter/EnterpriseEndpointFilter.java +++ b/app/proprietary/src/main/java/stirling/software/proprietary/security/filter/EnterpriseEndpointFilter.java @@ -28,11 +28,19 @@ public class EnterpriseEndpointFilter extends OncePerRequestFilter { if (!runningProOrHigher && isPrometheusEndpointRequest(request)) { // Allow only health checks to pass through for non-pro users String uri = request.getRequestURI(); + + // Strip the context path + String contextPath = request.getContextPath(); + String trimmedUri = + (contextPath != null && uri.startsWith(contextPath)) + ? uri.substring(contextPath.length()) + : uri; + boolean isHealthCheck = - uri.contains("/actuator/health") - || uri.contains("/healthz") - || uri.contains("/liveness") - || uri.contains("/readiness"); + trimmedUri.startsWith("/actuator/health") + || "/healthz".equals(trimmedUri) + || "/liveness".equals(trimmedUri) + || "/readiness".equals(trimmedUri); if (!isHealthCheck) { response.setStatus(HttpStatus.NOT_FOUND.value());