List of usage examples for org.springframework.util MultiValueMap set
void set(K key, @Nullable V value);
From source file:org.cloudfoundry.identity.uaa.integration.PasswordChangeEndpointIntegrationTests.java
@Test @OAuth2ContextConfiguration(resource = OAuth2ContextConfiguration.Implicit.class, initialize = false) public void testUserChangesOthersPasswordFails() throws Exception { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); parameters.set("source", "credentials"); parameters.set("username", joe.getUserName()); parameters.set("password", "password"); context.getAccessTokenRequest().putAll(parameters); PasswordChangeRequest change = new PasswordChangeRequest(); change.setPassword("newpassword"); HttpHeaders headers = new HttpHeaders(); ResponseEntity<Void> result = client.exchange(serverRunning.getUrl(userEndpoint) + "/{id}/password", HttpMethod.PUT, new HttpEntity<PasswordChangeRequest>(change, headers), null, bob.getId()); assertEquals(HttpStatus.FORBIDDEN, result.getStatusCode()); }
From source file:org.cloudfoundry.identity.uaa.integration.PasswordChangeEndpointIntegrationTests.java
@Test @OAuth2ContextConfiguration(resource = OAuth2ContextConfiguration.Implicit.class, initialize = false) public void testUserMustSupplyOldPassword() throws Exception { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); parameters.set("source", "credentials"); parameters.set("username", joe.getUserName()); parameters.set("password", "password"); context.getAccessTokenRequest().putAll(parameters); PasswordChangeRequest change = new PasswordChangeRequest(); change.setPassword("newpassword"); HttpHeaders headers = new HttpHeaders(); ResponseEntity<Void> result = client.exchange(serverRunning.getUrl(userEndpoint) + "/{id}/password", HttpMethod.PUT, new HttpEntity<PasswordChangeRequest>(change, headers), null, joe.getId()); assertEquals(HttpStatus.BAD_REQUEST, result.getStatusCode()); }
From source file:org.cloudfoundry.identity.uaa.integration.PasswordChangeEndpointIntegrationTests.java
@Test @OAuth2ContextConfiguration(resource = OAuth2ContextConfiguration.Implicit.class, initialize = false) public void testUserChangesOwnPassword() throws Exception { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); parameters.set("source", "credentials"); parameters.set("username", joe.getUserName()); parameters.set("password", "password"); context.getAccessTokenRequest().putAll(parameters); PasswordChangeRequest change = new PasswordChangeRequest(); change.setOldPassword("password"); change.setPassword("newpassword"); HttpHeaders headers = new HttpHeaders(); ResponseEntity<Void> result = client.exchange(serverRunning.getUrl(userEndpoint) + "/{id}/password", HttpMethod.PUT, new HttpEntity<PasswordChangeRequest>(change, headers), null, joe.getId()); assertEquals(HttpStatus.OK, result.getStatusCode()); // Now try logging in with the new credentials headers = new HttpHeaders(); headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); String credentials = String.format("{ \"username\":\"%s\", \"password\":\"%s\" }", joe.getUserName(), "newpassword"); MultiValueMap<String, String> formData = new LinkedMultiValueMap<String, String>(); formData.add("credentials", credentials); result = serverRunning.postForResponse(implicitUrl(), headers, formData); assertNotNull(result.getHeaders().getLocation()); assertTrue(result.getHeaders().getLocation().toString() .matches("https://uaa.cloudfoundry.com/redirect/vmc#access_token=.+")); }
From source file:org.keycloak.adapters.springsecurity.service.KeycloakDirectAccessGrantService.java
@Override public RefreshableKeycloakSecurityContext login(String username, String password) throws VerificationException { final MultiValueMap<String, String> body = new LinkedMultiValueMap<>(); final HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); body.set("username", username); body.set("password", password); body.set(OAuth2Constants.GRANT_TYPE, OAuth2Constants.PASSWORD); AccessTokenResponse response = template.postForObject(keycloakDeployment.getTokenUrl(), new HttpEntity<>(body, headers), AccessTokenResponse.class); return KeycloakSpringAdapterUtils.createKeycloakSecurityContext(keycloakDeployment, response); }
From source file:au.org.ala.fielddata.mobile.service.FieldDataServiceClient.java
public void sync(List<Record> records) throws Exception { MultiValueMap<String, Object> params = new LinkedMultiValueMap<String, Object>(); params.set("ident", ident); params.set("inFrame", "false"); // Setting this parameter prevents the // server from assuming a jsonp request. params.set("syncData", records); String url = getServerUrl() + syncUrl; Log.d("URL", url); Log.d("Params", getGson().toJson(records.get(0))); RestTemplate restTemplate = getRestTemplate(); SyncRecordsResponse result = restTemplate.postForObject(url, params, SyncRecordsResponse.class); }
From source file:com.miserablemind.api.consumer.tradeking.api.impl.MarketTemplate.java
@Override public StockQuote[] getQuoteForStocks(String[] tickers) { String tickersParamString = this.buildCommaSeparatedParameterValue(tickers); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>(); parameters.set("symbols", tickersParamString); URI url = this.buildUri(URL_QUOTES, parameters); ResponseEntity<TKStockQuoteResponse> response = this.getRestTemplate().getForEntity(url, TKStockQuoteResponse.class); if (null != response.getBody().getError()) throw new ApiException(TradeKingServiceProvider.PROVIDER_ID, response.getBody().getError()); return response.getBody().getQuotes(); }
From source file:com.miserablemind.api.consumer.tradeking.api.impl.MarketTemplate.java
@Override public OptionQuote getQuoteForOption(String ticker, LocalDate expirationDate, OptionQuote.OptionType type, double strikePrice) throws OptionQuoteNotFoundException { String timeString = expirationDate.toString("yyMMdd"); String optionType = (type == OptionQuote.OptionType.CALL) ? "C" : "P"; String paddedPrice = String.format("%08d", (int) (strikePrice * 1000)); String optionSymbol = ticker + timeString + optionType + paddedPrice; String tickersParamString = this.buildCommaSeparatedParameterValue(new String[] { optionSymbol }); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>(); parameters.set("symbols", tickersParamString); try {/*w ww . ja va 2s . c o m*/ URI url = this.buildUri(URL_QUOTES, parameters); ResponseEntity<TKOptionQuoteResponse> response = this.getRestTemplate().getForEntity(url, TKOptionQuoteResponse.class); if (null != response.getBody().getError()) throw new ApiException(TradeKingServiceProvider.PROVIDER_ID, response.getBody().getError()); return response.getBody().getQuotes()[0]; } catch (Exception e) { throw new OptionQuoteNotFoundException("Ticker: " + ticker, e); } }
From source file:com.miserablemind.api.consumer.tradeking.api.impl.MarketTemplate.java
TimeSalesQuote[] getDataPoints(String ticker, TimeSalesInterval interval, Integer countPerPage, Integer offset, LocalDate startDate, LocalDate endDate) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>(); parameters.set("symbols", ticker); if (null != interval) { parameters.set("interval", String.valueOf(interval)); if (interval == TimeSalesInterval.TICK && null != countPerPage) { parameters.set("rpp", String.valueOf(countPerPage)); if (null != offset) parameters.set("index", String.valueOf(offset)); }//from w w w . j av a2 s . co m } if (null != startDate) parameters.set("startdate", startDate.toString()); if (null != endDate) parameters.set("enddate", endDate.toString()); URI url = this.buildUri(URL_DATA_POINTS, parameters); ResponseEntity<TKTimeSalesQuoteResponse> response = this.getRestTemplate().getForEntity(url, TKTimeSalesQuoteResponse.class); if (null != response.getBody().getError()) throw new ApiException(TradeKingServiceProvider.PROVIDER_ID, response.getBody().getError()); return response.getBody().getQuotes(); }
From source file:com.miserablemind.api.consumer.tradeking.api.impl.MarketTemplate.java
NewsHeadline[] getNewsList(String[] tickers, Integer limit, String[] keywords, LocalDate startDate, LocalDate endDate) {//www . j a v a2 s. c om MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>(); if (null != tickers) parameters.set("symbols", this.buildCommaSeparatedParameterValue(tickers)); if (null != limit) parameters.set("maxhits", String.valueOf(limit)); if (null != keywords) parameters.set("keywords", this.buildCommaSeparatedParameterValue(keywords)); //dates do not work. TK does not provide documentation for format /* if (null != startDate) { parameters.set("startdate", dateFormat.format(startDate.getTime())); if (null != endDate) { parameters.set("enddate", dateFormat.format(endDate.getTime())); } else { parameters.set("enddate", dateFormat.format(new Date())); } }*/ URI url = this.buildUri(URL_SEARCH_NEWS, parameters); ResponseEntity<TKNewsArticlesSearchResponse> response = this.getRestTemplate().getForEntity(url, TKNewsArticlesSearchResponse.class); if (null != response.getBody().getError()) throw new ApiException(TradeKingServiceProvider.PROVIDER_ID, response.getBody().getError()); return response.getBody().getArticles(); }
From source file:org.cloudfoundry.identity.uaa.login.SamlRemoteUaaController.java
@RequestMapping(value = "/oauth/token", method = RequestMethod.POST, params = "grant_type=password") @ResponseBody/*from w ww .j av 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())); } } }