Example usage for org.springframework.web.context.request NativeWebRequest getHeaderValues

List of usage examples for org.springframework.web.context.request NativeWebRequest getHeaderValues

Introduction

In this page you can find the example usage for org.springframework.web.context.request NativeWebRequest getHeaderValues.

Prototype

@Nullable
String[] getHeaderValues(String headerName);

Source Link

Document

Return the request header values for the given header name, or null if none.

Usage

From source file:org.springframework.data.document.web.bind.annotation.support.HandlerMethodInvoker.java

@SuppressWarnings("unchecked")
private Object resolveRequestHeader(String headerName, boolean required, String defaultValue,
        MethodParameter methodParam, NativeWebRequest webRequest, Object handlerForInitBinderCall)
        throws Exception {

    Class<?> paramType = methodParam.getParameterType();
    if (Map.class.isAssignableFrom(paramType)) {
        return resolveRequestHeaderMap((Class<? extends Map>) paramType, webRequest);
    }//from   ww  w .j av a  2  s.c  o m
    if (headerName.length() == 0) {
        headerName = getRequiredParameterName(methodParam);
    }
    Object headerValue = null;
    String[] headerValues = webRequest.getHeaderValues(headerName);
    if (headerValues != null) {
        headerValue = (headerValues.length == 1 ? headerValues[0] : headerValues);
    }
    if (headerValue == null) {
        if (defaultValue != null) {
            headerValue = resolveDefaultValue(defaultValue);
        } else if (required) {
            raiseMissingHeaderException(headerName, paramType);
        }
        headerValue = checkValue(headerName, headerValue, paramType);
    }
    WebDataBinder binder = createBinder(webRequest, null, headerName);
    initBinder(handlerForInitBinderCall, headerName, binder, webRequest);
    return binder.convertIfNecessary(headerValue, paramType, methodParam);
}

From source file:org.springframework.data.document.web.bind.annotation.support.HandlerMethodInvoker.java

private Map resolveRequestHeaderMap(Class<? extends Map> mapType, NativeWebRequest webRequest) {
    if (MultiValueMap.class.isAssignableFrom(mapType)) {
        MultiValueMap<String, String> result;
        if (HttpHeaders.class.isAssignableFrom(mapType)) {
            result = new HttpHeaders();
        } else {//from   ww  w .  ja  v  a2s .c o  m
            result = new LinkedMultiValueMap<String, String>();
        }
        for (Iterator<String> iterator = webRequest.getHeaderNames(); iterator.hasNext();) {
            String headerName = iterator.next();
            for (String headerValue : webRequest.getHeaderValues(headerName)) {
                result.add(headerName, headerValue);
            }
        }
        return result;
    } else {
        Map<String, String> result = new LinkedHashMap<String, String>();
        for (Iterator<String> iterator = webRequest.getHeaderNames(); iterator.hasNext();) {
            String headerName = iterator.next();
            String headerValue = webRequest.getHeader(headerName);
            result.put(headerName, headerValue);
        }
        return result;
    }
}

From source file:org.springframework.web.bind.annotation.support.HandlerMethodInvoker.java

@SuppressWarnings("unchecked")
private Object resolveRequestHeader(String headerName, boolean required, String defaultValue,
        MethodParameter methodParam, NativeWebRequest webRequest, Object handlerForInitBinderCall)
        throws Exception {

    Class<?> paramType = methodParam.getParameterType();
    if (Map.class.isAssignableFrom(paramType)) {
        return resolveRequestHeaderMap((Class<? extends Map<?, ?>>) paramType, webRequest);
    }//from   w  ww . j  a  v  a2  s  .  com
    if (headerName.length() == 0) {
        headerName = getRequiredParameterName(methodParam);
    }
    Object headerValue = null;
    String[] headerValues = webRequest.getHeaderValues(headerName);
    if (headerValues != null) {
        headerValue = (headerValues.length == 1 ? headerValues[0] : headerValues);
    }
    if (headerValue == null) {
        if (defaultValue != null) {
            headerValue = resolveDefaultValue(defaultValue);
        } else if (required) {
            raiseMissingHeaderException(headerName, paramType);
        }
        headerValue = checkValue(headerName, headerValue, paramType);
    }
    WebDataBinder binder = createBinder(webRequest, null, headerName);
    initBinder(handlerForInitBinderCall, headerName, binder, webRequest);
    return binder.convertIfNecessary(headerValue, paramType, methodParam);
}

From source file:org.springframework.web.bind.annotation.support.HandlerMethodInvoker.java

private Map<String, ?> resolveRequestHeaderMap(Class<? extends Map<?, ?>> mapType,
        NativeWebRequest webRequest) {
    if (MultiValueMap.class.isAssignableFrom(mapType)) {
        MultiValueMap<String, String> result;
        if (HttpHeaders.class.isAssignableFrom(mapType)) {
            result = new HttpHeaders();
        } else {/*w ww .j  av a 2 s. c o  m*/
            result = new LinkedMultiValueMap<String, String>();
        }
        for (Iterator<String> iterator = webRequest.getHeaderNames(); iterator.hasNext();) {
            String headerName = iterator.next();
            for (String headerValue : webRequest.getHeaderValues(headerName)) {
                result.add(headerName, headerValue);
            }
        }
        return result;
    } else {
        Map<String, String> result = new LinkedHashMap<String, String>();
        for (Iterator<String> iterator = webRequest.getHeaderNames(); iterator.hasNext();) {
            String headerName = iterator.next();
            String headerValue = webRequest.getHeader(headerName);
            result.put(headerName, headerValue);
        }
        return result;
    }
}