Example usage for org.springframework.util MultiValueMap set

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

Introduction

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

Prototype

void set(K key, @Nullable V value);

Source Link

Document

Set the given single value under the given key.

Usage

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()));
        }
    }
}