I added the below filter and it works.
@Component
public class HstsFilter implements WebFilter {
private static final String PATH ="cms-service/webapi";
private static final Logger LOGGER = LoggerFactory.getLogger(HstsFilter.class);
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
LOGGER.debug("Received request for URL: {}", exchange.getRequest().getURI());
ServerHttpResponse response = exchange.getResponse();
LOGGER.debug("Before modification, response headers: {}", response.getHeaders());
if (!exchange.getRequest().getURI().getPath().contains(PATH) && !exchange.getRequest().getURI().getPath().contains("grafana")) {
response.getHeaders().add("Strict-Transport-Security", "max-age=31536000; includeSubDomains");
response.getHeaders().add("Cache-Control", "no-store"); // HTTP 1.1.
response.getHeaders().add("Pragma", "no-cache"); // HTTP 1.0.
response.getHeaders().add("Expires", "0"); // Proxies.
response.getHeaders().add("X-Frame-Options", "DENY");
}
LOGGER.debug("After modification, response headers: {}", response.getHeaders());
return chain.filter(exchange).then(Mono.fromRunnable(() -> {
LOGGER.debug("Response headers after processing: {}", exchange.getResponse().getHeaders());
LOGGER.debug("Response status code after processing: {}", exchange.getResponse().getStatusCode());
}));
}