Example usage for org.springframework.util MultiValueMap setAll

List of usage examples for org.springframework.util MultiValueMap setAll

Introduction

In this page you can find the example usage for org.springframework.util MultiValueMap setAll.

Prototype

void setAll(Map<K, V> values);

Source Link

Document

Set the given values under.

Usage

From source file:org.n52.io.request.QueryParameters.java

public static IoParameters createFromQuery(Map<String, String> query) {
    MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
    parameters.setAll(query);
    return createFromQuery(parameters);
}

From source file:cn.org.once.cstack.maven.plugin.utils.RestUtils.java

public Map<String, Object> sendPostForUpload(String url, String path, Log log) throws IOException {
    File file = new File(path);
    FileInputStream fileInputStream = new FileInputStream(file);
    fileInputStream.available();//from w ww. j ava 2s.  c o  m
    fileInputStream.close();
    FileSystemResource resource = new FileSystemResource(file);
    Map<String, Object> params = new HashMap<>();
    params.put("file", resource);
    RestTemplate restTemplate = new RestTemplate();
    MultiValueMap<String, Object> postParams = new LinkedMultiValueMap<String, Object>();
    postParams.setAll(params);
    Map<String, Object> response = new HashMap<String, Object>();
    HttpHeaders headers = new HttpHeaders();
    headers.set("Content-Type", "multipart/form-data");
    headers.set("Accept", "application/json");
    headers.add("Cookie", "JSESSIONID=" + localContext.getCookieStore().getCookies().get(0).getValue());
    org.springframework.http.HttpEntity<Object> request = new org.springframework.http.HttpEntity<Object>(
            postParams, headers);
    ResponseEntity<?> result = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
    String body = result.getBody().toString();
    MediaType contentType = result.getHeaders().getContentType();
    HttpStatus statusCode = result.getStatusCode();
    response.put("content-type", contentType);
    response.put("statusCode", statusCode);
    response.put("body", body);

    return response;
}

From source file:org.cloudfoundry.identity.uaa.login.SamlRemoteUaaController.java

@RequestMapping(value = "/oauth/token", method = RequestMethod.POST, params = "grant_type=password")
@ResponseBody/*from   w w w .j a  v a  2  s . c o m*/
public ResponseEntity<byte[]> tokenEndpoint(HttpServletRequest request, HttpEntity<byte[]> entity,
        @RequestParam Map<String, String> parameters, Map<String, Object> model, Principal principal)
        throws Exception {

    // Request has a password. Owner password grant with a UAA password
    if (null != request.getParameter("password")) {
        return passthru(request, entity, model);
    } else {
        //
        MultiValueMap<String, String> requestHeadersForClientInfo = new LinkedMultiValueMap<String, String>();
        requestHeadersForClientInfo.add(AUTHORIZATION, request.getHeader(AUTHORIZATION));

        ResponseEntity<byte[]> clientInfoResponse = getDefaultTemplate().exchange(
                getUaaBaseUrl() + "/clientinfo", HttpMethod.POST,
                new HttpEntity<MultiValueMap<String, String>>(null, requestHeadersForClientInfo), byte[].class);

        if (clientInfoResponse.getStatusCode() == HttpStatus.OK) {
            String path = extractPath(request);

            MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
            map.setAll(parameters);
            if (principal != null) {
                map.set("source", "login");
                map.set("client_id", getClientId(clientInfoResponse.getBody()));
                map.setAll(getLoginCredentials(principal));
                map.remove("credentials"); // legacy vmc might break otherwise
            } else {
                throw new BadCredentialsException("No principal found in authorize endpoint");
            }

            HttpHeaders requestHeaders = new HttpHeaders();
            requestHeaders.putAll(getRequestHeaders(requestHeaders));
            requestHeaders.remove(AUTHORIZATION.toLowerCase());
            requestHeaders.remove(ACCEPT.toLowerCase());
            requestHeaders.remove(CONTENT_TYPE.toLowerCase());
            requestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
            requestHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
            requestHeaders.remove(COOKIE);
            requestHeaders.remove(COOKIE.toLowerCase());

            ResponseEntity<byte[]> response = getAuthorizationTemplate().exchange(getUaaBaseUrl() + "/" + path,
                    HttpMethod.POST, new HttpEntity<MultiValueMap<String, String>>(map, requestHeaders),
                    byte[].class);

            saveCookie(response.getHeaders(), model);

            byte[] body = response.getBody();
            if (body != null) {
                HttpHeaders outgoingHeaders = getResponseHeaders(response.getHeaders());
                return new ResponseEntity<byte[]>(response.getBody(), outgoingHeaders,
                        response.getStatusCode());
            }

            throw new IllegalStateException("Neither a redirect nor a user approval");
        } else {
            throw new BadCredentialsException(new String(clientInfoResponse.getBody()));
        }
    }
}

From source file:fr.treeptik.cloudunit.cli.rest.RestUtils.java

/**
 * sendPostCommand// ww  w.j  a  va2  s.c  om
 *
 * @param url
 * @param parameters
 * @return
 * @throws ClientProtocolException
 */
public Map<String, Object> sendPostForUpload(String url, Map<String, Object> parameters) {
    RestTemplate restTemplate = new RestTemplate();
    List<HttpMessageConverter<?>> mc = restTemplate.getMessageConverters();
    mc.add(new MappingJacksonHttpMessageConverter());
    restTemplate.setMessageConverters(mc);
    MultiValueMap<String, Object> postParams = new LinkedMultiValueMap<String, Object>();
    postParams.setAll(parameters);
    Map<String, Object> response = new HashMap<String, Object>();
    HttpHeaders headers = new HttpHeaders();
    headers.set("Content-Type", "multipart/form-data");
    headers.set("Accept", "application/json");
    headers.add("Cookie", "JSESSIONID=" + localContext.getCookieStore().getCookies().get(0).getValue());
    org.springframework.http.HttpEntity<Object> request = new org.springframework.http.HttpEntity<Object>(
            postParams, headers);
    ResponseEntity<?> result = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
    String body = result.getBody().toString();
    MediaType contentType = result.getHeaders().getContentType();
    HttpStatus statusCode = result.getStatusCode();
    response.put("content-type", contentType);
    response.put("statusCode", statusCode);
    response.put("body", body);

    return response;

}

From source file:cn.org.once.cstack.cli.rest.RestUtils.java

/**
 * /*from w w w .ja  v a 2s.  com*/
 * /** sendPostCommand
 *
 * @param url
 * @param parameters
 * @return
 * @throws ClientProtocolException
 */
public Map<String, Object> sendPostForUpload(String url, Map<String, Object> parameters) {
    SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
    requestFactory.setBufferRequestBody(false);

    RestTemplate restTemplate = new RestTemplate(requestFactory);
    List<HttpMessageConverter<?>> mc = restTemplate.getMessageConverters();
    mc.add(new MappingJackson2HttpMessageConverter());
    restTemplate.setMessageConverters(mc);

    MultiValueMap<String, Object> postParams = new LinkedMultiValueMap<String, Object>();
    postParams.setAll(parameters);
    Map<String, Object> response = new HashMap<String, Object>();
    HttpHeaders headers = new HttpHeaders();
    headers.set("Content-Type", "multipart/form-data");
    headers.set("Accept", "application/json");
    headers.add("Cookie", "JSESSIONID=" + localContext.getCookieStore().getCookies().get(0).getValue());
    HttpEntity<Object> request = new HttpEntity<Object>(postParams, headers);
    ResponseEntity<?> result = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
    String body = result.getBody().toString();
    MediaType contentType = result.getHeaders().getContentType();
    HttpStatus statusCode = result.getStatusCode();
    response.put(CONTENT_TYPE, contentType);
    response.put(STATUS_CODE, statusCode);
    response.put(BODY, body);

    return response;

}

From source file:org.devefx.httpmapper.binding.MapperMethod.java

@SuppressWarnings("unchecked")
public Object execute(RestTemplate restTemplate, Object[] args) throws Exception {
    Object result = null;/* www  .ja va2 s.  c  o  m*/

    do {
        MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.valueOf(command.getContentType()));

        Map<String, Object> paramMap = null;
        Object param = method.convertArgsToCommandParam(args);
        if (param instanceof Map) {
            paramMap = (Map<String, Object>) param;
            body.setAll(paramMap);
        }

        URI uri = expandURI(command.getUrl(), args);

        RequestEntity requestEntity = new RequestEntity(body, headers, command.getHttpMethod(), uri,
                method.getReturnType());

        mappedHandler.onRequest(requestEntity);

        // FIXME: application/x-www-form-urlencoded
        if (headers.getContentType().includes(MediaType.APPLICATION_FORM_URLENCODED)) {
            if (paramMap != null) {
                for (Map.Entry<String, Object> entry : paramMap.entrySet()) {
                    Object value = entry.getValue();
                    if (value != null && !ReflectUtils.isUserType(value)) {
                        entry.setValue(String.valueOf(value));
                    }
                }
                body.setAll(paramMap);
            } else if (param != null && ReflectUtils.isUserType(param)) {
                body.setAll(mapper.<Map<String, Object>>convertValue(param, mapType));
            }
        }

        if (requestEntity.getMethod() == HttpMethod.GET) {
            uri = appendUrlParams(requestEntity.getUrl(), body);
            requestEntity.setUrl(uri);
        }

        if (logger.isInfoEnabled()) {
            String preStr = command.getName() + " ====> ";
            logger.info(preStr + "Request: " + requestEntity.getUrl());
            logger.info(preStr + "Parameters: " + requestEntity.getBody());
            logger.info(preStr + "Headers: " + requestEntity.getHeaders());
        }

        ResponseEntity<JsonNode> responseEntity = restTemplate.exchange(requestEntity.getUrl(),
                requestEntity.getMethod(),
                new HttpEntity<>(requestEntity.getBody(), requestEntity.getHeaders()), JsonNode.class);

        if (logger.isInfoEnabled()) {
            StringBuffer buf = new StringBuffer();
            buf.append(command.getName() + " ====> ");
            buf.append("Response: [status=").append(responseEntity.getStatusCode()).append("] ");
            if (responseEntity.hasBody()) {
                buf.append(responseEntity.getBody());
            }
            logger.info(buf.toString());
        }

        if (responseEntity != null) {
            org.devefx.httpmapper.http.ResponseEntity entity = new org.devefx.httpmapper.http.ResponseEntity(
                    responseEntity.getBody(), responseEntity.getHeaders(), responseEntity.getStatusCode());

            mappedHandler.onResponse(requestEntity, entity);

            if (entity.hasBody()) {
                Object responseBody = entity.getBody();
                if (method.getRawType().isInstance(responseBody)) {
                    result = responseBody;
                    break;
                }

                JavaType valueType = mapper.getTypeFactory().constructType(method.getReturnType());
                if (responseBody instanceof String) {
                    result = mapper.readValue((String) responseBody, valueType);
                } else {
                    result = mapper.convertValue(responseBody, valueType);
                }
            }
        }

    } while (false);

    if (result == null && method.returnsPrimitive() && !method.returnsVoid()) {
        throw new BindingException("Mapper method '" + command.getUrl()
                + " attempted to return null from a method with a primitive return type ("
                + method.getReturnType() + ").");
    }
    return result;
}

From source file:org.cloudfoundry.identity.uaa.integration.RemoteAuthenticationEndpointTests.java

@SuppressWarnings("rawtypes")
ResponseEntity<Map> authenticate(String username, String password, Map<String, Object> additionalParams) {
    RestTemplate restTemplate = new RestTemplate();
    // The default java.net client doesn't allow you to handle 4xx responses
    restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
    if (restTemplate instanceof OAuth2RestTemplate) {
        OAuth2RestTemplate oAuth2RestTemplate = (OAuth2RestTemplate) restTemplate;
        oAuth2RestTemplate.setErrorHandler(
                new UaaOauth2ErrorHandler(oAuth2RestTemplate.getResource(), HttpStatus.Series.SERVER_ERROR));
    } else {/*from   w ww  .ja  v  a2  s  .c  om*/
        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
            @Override
            protected boolean hasError(HttpStatus statusCode) {
                return statusCode.series() == HttpStatus.Series.SERVER_ERROR;
            }
        });
    }
    HttpHeaders headers = new HttpHeaders();
    if (additionalParams != null) {
        headers.add("Authorization", "Bearer " + getLoginReadBearerToken());
    }
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

    MultiValueMap<String, Object> parameters = new LinkedMultiValueMap<String, Object>();
    parameters.set("username", username);
    if (password != null) {
        parameters.set("password", password);
    }
    if (additionalParams != null) {
        parameters.setAll(additionalParams);
    }

    ResponseEntity<Map> result = restTemplate.exchange(serverRunning.getUrl("/authenticate"), HttpMethod.POST,
            new HttpEntity<MultiValueMap<String, Object>>(parameters, headers), Map.class);
    return result;
}

From source file:org.cloudfoundry.identity.uaa.login.RemoteUaaController.java

@RequestMapping(value = "/oauth/authorize", params = "response_type")
public ModelAndView startAuthorization(HttpServletRequest request, @RequestParam Map<String, String> parameters,
        Map<String, Object> model, @RequestHeader HttpHeaders headers, Principal principal) throws Exception {

    String path = extractPath(request);

    MultiValueMap<String, String> map = new LinkedMaskingMultiValueMap<String, String>();
    map.setAll(parameters);

    String redirectUri = parameters.get("redirect-uri");
    if (redirectUri != null && !redirectUri.matches("(http:|https:)?//.*")) {
        redirectUri = "http://" + redirectUri;
        map.set("redirect-uri", redirectUri);
    }//from  www  .  ja v  a  2  s .  co  m

    if (principal != null) {
        map.set("source", "login");
        map.setAll(getLoginCredentials(principal));
        map.remove("credentials"); // legacy cf might break otherwise
        map.remove("password"); // request for token will not use password
    } else {
        throw new BadCredentialsException("No principal found in authorize endpoint");
    }

    HttpHeaders requestHeaders = new HttpHeaders();
    requestHeaders.putAll(getRequestHeaders(headers));
    requestHeaders.remove(AUTHORIZATION.toLowerCase());
    requestHeaders.remove(USER_AGENT);
    requestHeaders.remove(ACCEPT.toLowerCase());
    requestHeaders.remove(CONTENT_TYPE.toLowerCase());
    requestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    requestHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
    requestHeaders.remove(COOKIE);
    requestHeaders.remove(COOKIE.toLowerCase());

    @SuppressWarnings("rawtypes")
    ResponseEntity<Map> response;

    response = authorizationTemplate.exchange(getUaaBaseUrl() + "/" + path, HttpMethod.POST,
            new HttpEntity<MultiValueMap<String, String>>(map, requestHeaders), Map.class);

    saveCookie(response.getHeaders(), model);

    @SuppressWarnings("unchecked")
    Map<String, Object> body = response.getBody();
    if (body != null) {
        // User approval is required
        logger.debug("Response: " + body);
        model.putAll(body);
        model.put("links", getLinksInfo());
        if (!body.containsKey("options")) {
            String errorMsg = "No options returned from UAA for user approval";
            if (body.containsKey("error")) {
                throw OAuth2Exception.create((String) body.get("error"),
                        (String) (body.containsKey("error_description") ? body.get("error_description")
                                : errorMsg));
            } else {
                throw new OAuth2Exception(errorMsg);
            }
        }
        logger.info("Approval required in /oauth/authorize for: " + principal.getName());
        return new ModelAndView("access_confirmation", model);
    }

    String location = response.getHeaders().getFirst("Location");
    if (location != null) {
        logger.info("Redirect in /oauth/authorize for: " + principal.getName());
        // Don't expose model attributes (cookie) in redirect
        return new ModelAndView(new RedirectView(location, false, true, false));
    }

    throw new IllegalStateException("Neither a redirect nor a user approval");

}

From source file:org.encuestame.oauth1.support.OAuth1Support.java

/**
 *
 * @param tokenUrl//w w w.j  av a 2s.  c o  m
 * @param tokenRequestParameters
 * @param additionalParameters
 * @param tokenSecret
 * @return
 * @throws EnMeOAuthSecurityException
 */
protected OAuth1Token getTokenFromProvider(String tokenUrl, Map<String, String> tokenRequestParameters,
        Map<String, String> additionalParameters, String tokenSecret) throws EnMeOAuthSecurityException {
    log.debug("getTokenFromProvider TOKEN " + tokenUrl);
    log.debug("getTokenFromProvider TOKEN " + tokenRequestParameters);
    log.debug("getTokenFromProvider TOKEN " + additionalParameters);
    HttpHeaders headers = new HttpHeaders();
    headers.add("Authorization",
            getAuthorizationHeaderValue(tokenUrl, tokenRequestParameters, additionalParameters, tokenSecret));
    MultiValueMap<String, String> bodyParameters = new LinkedMultiValueMap<String, String>();
    bodyParameters.setAll(additionalParameters);
    HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(
            bodyParameters, headers);
    Map<String, String> responseMap = null;
    /*
     * org.springframework.web.client.HttpServerErrorException: 503 Service Unavailable
     * Sometimes, api service are unavailable, like the famous twitter over capacity
     */
    try {
        ResponseEntity<String> response = getRestTemplate().exchange(tokenUrl, HttpMethod.POST, request,
                String.class);
        responseMap = parseResponse(response.getBody());
    } catch (HttpServerErrorException e) {
        e.printStackTrace();
        throw new EnMeOAuthSecurityException(e);
    } catch (HttpClientErrorException e) {
        // normally if the social credentials are wrong
        e.printStackTrace();
        throw new EnMeBadCredentialsException(e.getMessage());
    } catch (Exception e) {
        // another kind of error, possible wrong configuration
        //TODO : only happends with twitter
        e.printStackTrace();
        throw new EnMeBadCredentialsException(e.getMessage());
    }

    return new OAuth1Token(responseMap.get("oauth_token"), responseMap.get("oauth_token_secret"));
}