List of usage examples for org.springframework.util MultiValueMap setAll
void setAll(Map<K, V> values);
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")); }