fix: use stricter URL matching in enterprise filter

This commit is contained in:
B4S1C-Coder 2025-12-16 09:39:31 +05:30
parent 27068593d6
commit cce97dbe46

View File

@ -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());