protected Optional checkContentTypeOverride()

in src/main/java/org/apache/sling/engine/impl/SlingJakartaHttpServletResponseImpl.java [336:359]


    protected Optional<String> checkContentTypeOverride(@Nullable String contentType) {
        if (requestData.getSlingRequestProcessor().getContentTypeHeaderState() == ContentTypeHeaderState.VIOLATED) {
            // return immediatly as the content type header has already been violated
            // prevoiously, no more checks needed
            return Optional.empty();
        }
        String currentContentType = getContentType();
        if (contentType == null) {
            requestData.getSlingRequestProcessor().setContentTypeHeaderState(ContentTypeHeaderState.VIOLATED);
            return Optional.of(getMessage(currentContentType, null));
        } else {
            Optional<String> currentMime = currentContentType == null
                    ? Optional.of("null")
                    : Arrays.stream(currentContentType.split(";")).findFirst();
            Optional<String> setMime = Arrays.stream(contentType.split(";")).findFirst();
            if (currentMime.isPresent()
                    && setMime.isPresent()
                    && !currentMime.get().equals(setMime.get())) {
                requestData.getSlingRequestProcessor().setContentTypeHeaderState(ContentTypeHeaderState.VIOLATED);
                return Optional.of(getMessage(currentContentType, contentType));
            }
        }
        return Optional.empty();
    }