Example usage for org.springframework.http MediaType includes

List of usage examples for org.springframework.http MediaType includes

Introduction

In this page you can find the example usage for org.springframework.http MediaType includes.

Prototype

public boolean includes(@Nullable MediaType other) 

Source Link

Document

Indicate whether this MediaType includes the given media type.

Usage

From source file:morph.plugin.views.annotation.ServletAnnotationMappingUtils.java

/**
 * Check whether the given request matches the specified header conditions.
 * @param headers the header conditions, following
 *                {@link org.springframework.web.bind.annotation.RequestMapping#headers() RequestMapping.headers()}
 * @param request the current HTTP request to check
 *///  www.j  a v  a 2 s  .  c  om
public static boolean checkHeaders(String[] headers, HttpServletRequest request) {
    if (!ObjectUtils.isEmpty(headers)) {
        for (String header : headers) {
            int separator = header.indexOf('=');
            if (separator == -1) {
                if (header.startsWith("!")) {
                    if (request.getHeader(header.substring(1)) != null) {
                        return false;
                    }
                } else if (request.getHeader(header) == null) {
                    return false;
                }
            } else {
                boolean negated = separator > 0 && header.charAt(separator - 1) == '!';
                String key = !negated ? header.substring(0, separator) : header.substring(0, separator - 1);
                String value = header.substring(separator + 1);
                if (isMediaTypeHeader(key)) {
                    List<MediaType> requestMediaTypes = MediaType.parseMediaTypes(request.getHeader(key));
                    List<MediaType> valueMediaTypes = MediaType.parseMediaTypes(value);
                    boolean found = false;
                    for (Iterator<MediaType> valIter = valueMediaTypes.iterator(); valIter.hasNext()
                            && !found;) {
                        MediaType valueMediaType = valIter.next();
                        for (Iterator<MediaType> reqIter = requestMediaTypes.iterator(); reqIter.hasNext()
                                && !found;) {
                            MediaType requestMediaType = reqIter.next();
                            if (valueMediaType.includes(requestMediaType)) {
                                found = true;
                            }
                        }

                    }
                    if (!found) {
                        return negated;
                    }
                } else if (!value.equals(request.getHeader(key))) {
                    return negated;
                }
            }
        }
    }
    return true;
}

From source file:com.icl.integrator.util.patch.ServletAnnotationMappingUtils.java

/**
 * Check whether the given request matches the specified header conditions.
 * @param headers the header conditions, following
 * {@link org.springframework.web.bind.annotation.RequestMapping#headers() RequestMapping.headers()}
 * @param request the current HTTP request to check
 *//* w ww .  j  av a 2s .  co  m*/
public static boolean checkHeaders(String[] headers, HttpServletRequest request) {
    if (!ObjectUtils.isEmpty(headers)) {
        for (String header : headers) {
            int separator = header.indexOf('=');
            if (separator == -1) {
                if (header.startsWith("!")) {
                    if (request.getHeader(header.substring(1)) != null) {
                        return false;
                    }
                } else if (request.getHeader(header) == null) {
                    return false;
                }
            } else {
                boolean negated = (separator > 0 && header.charAt(separator - 1) == '!');
                String key = !negated ? header.substring(0, separator) : header.substring(0, separator - 1);
                String value = header.substring(separator + 1);
                if (isMediaTypeHeader(key)) {
                    List<MediaType> requestMediaTypes = MediaType.parseMediaTypes(request.getHeader(key));
                    List<MediaType> valueMediaTypes = MediaType.parseMediaTypes(value);
                    boolean found = false;
                    for (Iterator<MediaType> valIter = valueMediaTypes.iterator(); valIter.hasNext()
                            && !found;) {
                        MediaType valueMediaType = valIter.next();
                        for (Iterator<MediaType> reqIter = requestMediaTypes.iterator(); reqIter.hasNext()
                                && !found;) {
                            MediaType requestMediaType = reqIter.next();
                            if (valueMediaType.includes(requestMediaType)) {
                                found = true;
                            }
                        }

                    }
                    if (negated) {
                        found = !found;
                    }
                    if (!found) {
                        return false;
                    }
                } else {
                    boolean match = value.equals(request.getHeader(key));
                    if (negated) {
                        match = !match;
                    }
                    if (!match) {
                        return false;
                    }
                }
            }
        }
    }
    return true;
}

From source file:org.cloudfoundry.identity.uaa.error.JsonAwareAccessDeniedHandler.java

@Override
public void handle(HttpServletRequest request, HttpServletResponse response,
        AccessDeniedException authException) throws IOException, ServletException {
    String accept = request.getHeader("Accept");
    boolean json = false;
    if (StringUtils.hasText(accept)) {
        for (MediaType mediaType : MediaType.parseMediaTypes(accept)) {
            if (mediaType.includes(MediaType.APPLICATION_JSON)) {
                json = true;//  ww w. j  av  a 2s.c o m
                break;
            }
        }
    }
    if (json) {
        response.setStatus(HttpServletResponse.SC_FORBIDDEN);
        response.setContentType(MediaType.APPLICATION_JSON_VALUE);
        response.getWriter().append(String.format("{\"error\":\"%s\"}", authException.getMessage()));
    } else {
        response.sendError(HttpServletResponse.SC_FORBIDDEN, authException.getMessage());
    }
}

From source file:capital.scalable.restdocs.response.JsonContentModifier.java

@Override
public byte[] modifyContent(byte[] originalContent, MediaType contentType) {
    if (originalContent.length > 0 && contentType != null && contentType.includes(APPLICATION_JSON)) {
        return modifyContent(originalContent);
    } else {/*from  w  w w. j a  v  a  2s .  c om*/
        return originalContent;
    }
}

From source file:org.cloudfoundry.identity.uaa.error.JsonAwareAuthenticationEntryPoint.java

@Override
public void commence(HttpServletRequest request, HttpServletResponse response,
        AuthenticationException authException) throws IOException, ServletException {
    response.addHeader("WWW-Authenticate", String.format("%s realm=\"%s\"", typeName, realmName));
    String accept = request.getHeader("Accept");
    boolean json = false;
    if (StringUtils.hasText(accept)) {
        for (MediaType mediaType : MediaType.parseMediaTypes(accept)) {
            if (mediaType.includes(MediaType.APPLICATION_JSON)) {
                json = true;/*from w ww .  j  a v  a 2s  . co m*/
                break;
            }
        }
    }
    if (json) {
        response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
        response.setContentType(MediaType.APPLICATION_JSON_VALUE);
        response.getWriter().append(String.format("{\"error\":\"%s\"}", authException.getMessage()));
    } else {
        response.sendError(HttpServletResponse.SC_UNAUTHORIZED, authException.getMessage());
    }
}

From source file:capital.scalable.restdocs.response.BinaryReplacementContentModifier.java

@Override
public byte[] modifyContent(byte[] originalContent, MediaType contentType) {
    if (originalContent.length > 0 && contentType != null) {
        for (MediaType type : BINARY_ENUM_TYPES) {
            if (contentType.includes(type)) {
                return replacementText();
            }//  w w w .  j a v  a  2s . co m
        }
    }
    return originalContent;
}

From source file:org.jasig.portlet.courses.dao.xml.Jaxb2CourseSummaryHttpMessageConverter.java

protected boolean isSupported(MediaType mediaType) {
    if (mediaType == null) {
        return true;
    }//from  w w  w . j  a v a2 s.c o m
    for (MediaType supportedMediaType : getSupportedMediaTypes()) {
        if (supportedMediaType.includes(mediaType)) {
            return true;
        }
    }
    return false;
}

From source file:org.bremersee.common.web.client.ResponseErrorHandlerImpl.java

/**
 * Find a throwable instance of the HTTP response.
 *
 * @param response the HTTP response/*from   w w w  . j  a va 2  s  .c  o m*/
 * @return the throwable
 * @throws IOException if the response cannot be parsed
 */
protected Throwable findThrowable(final ClientHttpResponse response) throws IOException {
    final MediaType contentType = response.getHeaders().getContentType();
    try {
        if (contentType.includes(MediaType.APPLICATION_XML)) {
            return findThrowableFromXml(response);
        } else {
            return findThrowableFromJson(response);
        }

    } catch (RuntimeException re) { // NOSONAR

        return findThrowableByStatusCode(response);
    }
}

From source file:com.predic8.membrane.core.http.Header.java

/**
 * Tries to determines the index of the best content type.
 *///from   w  w w.j a va  2s.c  o  m
public int getBestAcceptedType(MediaType[] supported) {
    String accept = getFirstValue(ACCEPT);
    if (accept == null)
        return -1;
    List<MediaType> m;
    try {
        m = MediaType.parseMediaTypes(accept);
    } catch (IllegalArgumentException e) {
        return -1;
    }
    MediaType.sortByQualityValue(m);
    for (MediaType t : m)
        for (int i = 0; i < supported.length; i++)
            if (t.includes(supported[i]))
                return i;
    return -1;
}

From source file:com.httpMessageConvert.FormHttpMessageConverter.java

public boolean canRead(Class<?> clazz, MediaType mediaType) {
    System.out.println("----------------coming ------------");
    if (mediaType == null) {
        return true;
    }//  ww w . j a va2  s.  c om
    for (MediaType supportedMediaType : getSupportedMediaTypes()) {
        // we can't read multipart
        if (!supportedMediaType.equals(MediaType.MULTIPART_FORM_DATA)
                && supportedMediaType.includes(mediaType)) {
            return true;
        }
    }
    return false;
}