Example usage for org.springframework.http HttpHeaders set

List of usage examples for org.springframework.http HttpHeaders set

Introduction

In this page you can find the example usage for org.springframework.http HttpHeaders set.

Prototype

@Override
public void set(String headerName, @Nullable String headerValue) 

Source Link

Document

Set the given, single header value under the given name.

Usage

From source file:org.cloudfoundry.identity.batch.integration.ServerRunning.java

public ResponseEntity<Void> postForRedirect(String path, HttpHeaders headers,
        MultiValueMap<String, String> params) {
    ResponseEntity<Void> exchange = postForResponse(path, headers, params);

    if (exchange.getStatusCode() != HttpStatus.FOUND) {
        throw new IllegalStateException(
                "Expected 302 but server returned status code " + exchange.getStatusCode());
    }/*  w w w  . j a  va2s. c  om*/

    if (exchange.getHeaders().containsKey("Set-Cookie")) {
        String cookie = exchange.getHeaders().getFirst("Set-Cookie");
        headers.set("Cookie", cookie);
    }

    String location = exchange.getHeaders().getLocation().toString();

    return client.exchange(location, HttpMethod.GET, new HttpEntity<Void>(null, headers), null);
}

From source file:edu.mayo.cts2.framework.plugin.service.bioportal.rest.BioportalRestService.java

/**
 * Call bioportal.//from   ww w . j a va2 s .  com
 *
 * @param url the url
 * @return the string
 */
protected String callBioportal(String url) {
    log.info("Calling Bioportal REST: " + url);
    HttpHeaders headers = new HttpHeaders();
    headers.set("Accept", "application/xml");

    ResponseEntity<String> response;

    try {
        response = this.restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<Void>(headers), String.class);
    } catch (HttpStatusCodeException e) {
        if (e.getStatusCode().equals(HttpStatus.NOT_FOUND)) {
            throw e;
        } else {
            log.error("Error calling BioPortal REST Service", e);
            throw ExceptionFactory.createUnknownException("Error calling NCBO BioPortal: " + e.getMessage());
        }
    }

    return response.getBody();
}

From source file:org.apigw.authserver.ServerRunning.java

public ResponseEntity<Void> postForRedirect(String path, HttpHeaders headers,
        MultiValueMap<String, String> params) {
    ResponseEntity<Void> exchange = postForStatus(path, headers, params);

    if (exchange.getStatusCode() != HttpStatus.FOUND) {
        throw new IllegalStateException(
                "Expected 302 but server returned status code " + exchange.getStatusCode());
    }//from w  w w .  ja va  2 s.  c  om

    if (exchange.getHeaders().containsKey("Set-Cookie")) {
        String cookie = exchange.getHeaders().getFirst("Set-Cookie");
        headers.set("Cookie", cookie);
    }

    String location = exchange.getHeaders().getLocation().toString();

    return client.exchange(location, HttpMethod.GET, new HttpEntity<Void>(null, headers), Void.class);
}

From source file:org.dspace.EDMExport.controller.homeController.java

/**
 * Mtodo para generar un objeto HttpEntity con un array de bytes a partir del contenido xml
 * //from   w  w w  .j  av  a  2s.  c o  m
 * @param xml cadena con el contenido xml
 * @return objeto HttpEntity {@link HttpEntity}
 * @throws UnsupportedEncodingException
 */
private HttpEntity<byte[]> getHttpEntityFromXml(String xml, String format) throws UnsupportedEncodingException {
    byte[] EDMXmlBytes;
    EDMXmlBytes = xml.getBytes("UTF-8");
    HttpHeaders header = new HttpHeaders();
    header.setContentType(new MediaType("text", "xml", Charset.forName("UTF-8")));
    header.set("Content-Disposition", "attachment; filename=" + format + "Xml.xml");
    header.setContentLength(EDMXmlBytes.length);
    return new HttpEntity<byte[]>(EDMXmlBytes, header);
}

From source file:org.openscience.cdk.app.DepictController.java

private HttpEntity<byte[]> makeResponse(byte[] bytes, String contentType) {
    HttpHeaders header = new HttpHeaders();
    String type = contentType.substring(0, contentType.indexOf('/'));
    String subtype = contentType.substring(contentType.indexOf('/') + 1, contentType.length());
    header.setContentType(new MediaType(type, subtype));
    header.add("Access-Control-Allow-Origin", "*");
    header.set(HttpHeaders.CACHE_CONTROL, "max-age=31536000");
    header.setContentLength(bytes.length);
    return new HttpEntity<>(bytes, header);
}

From source file:eu.freme.broker.eservices.ELink.java

@RequestMapping(value = "/e-link/templates/{templateid}", method = RequestMethod.GET)
@Secured({ "ROLE_USER", "ROLE_ADMIN" })
public ResponseEntity<String> getTemplateById(
        @RequestHeader(value = "Accept", required = false) String acceptHeader,
        @PathVariable("templateid") long templateIdStr,
        // @RequestParam(value = "outformat", required=false) String
        // outformat,
        // @RequestParam(value = "o", required=false) String o
        @RequestParam Map<String, String> allParams) {

    try {//from w w  w  . j  a  va  2s .c o  m
        // validateTemplateID(templateIdStr);
        // NOTE: outformat was defaulted to JSON before! Now it is TURTLE.
        NIFParameterSet nifParameters = this.normalizeNif(null, acceptHeader, null, allParams, true);
        HttpHeaders responseHeaders = new HttpHeaders();
        // check read access
        Template template = templateDAO.findOneById(templateIdStr);

        String serialization;
        if (nifParameters.getOutformat().equals(RDFConstants.RDFSerialization.JSON)) {
            ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
            serialization = ow.writeValueAsString(template);
        } else {
            serialization = rdfConversionService.serializeRDF(template.getRDF(), nifParameters.getOutformat());
        }
        responseHeaders.set("Content-Type", nifParameters.getOutformat().contentType());
        return new ResponseEntity<>(serialization, responseHeaders, HttpStatus.OK);

    } catch (AccessDeniedException ex) {
        logger.error(ex.getMessage(), ex);
        throw new eu.freme.broker.exception.AccessDeniedException();
    } catch (BadRequestException ex) {
        logger.error(ex.getMessage(), ex);
        throw ex;
    } catch (OwnedResourceNotFoundException ex) {
        logger.error(ex.getMessage(), ex);
        throw new TemplateNotFoundException("Template not found. " + ex.getMessage());
    } catch (Exception ex) {
        logger.error(ex.getMessage(), ex);
        throw new InternalServerErrorException("Unknown problem. Please contact us.");
    }
}

From source file:org.kurento.repository.test.RangeGetTests.java

@Test
public void test() throws Exception {

    String id = "logo.png";

    RepositoryItem item;/*from  w  w  w.ja  v  a 2  s.  c o  m*/
    try {
        item = getRepository().findRepositoryItemById(id);
    } catch (NoSuchElementException e) {
        item = getRepository().createRepositoryItem(id);
        uploadFile(new File("test-files/" + id), item);
    }

    RepositoryHttpPlayer player = item.createRepositoryHttpPlayer();

    String url = player.getURL();

    player.setAutoTerminationTimeout(100000);

    // Following sample
    // http://stackoverflow.com/questions/8293687/sample-http-range-request-session

    RestTemplate httpClient = getRestTemplate();

    {
        HttpHeaders requestHeaders = new HttpHeaders();

        MultiValueMap<String, String> postParameters = new LinkedMultiValueMap<String, String>();

        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(
                postParameters, requestHeaders);

        ResponseEntity<byte[]> response = httpClient.exchange(url, HttpMethod.GET, requestEntity, byte[].class);

        System.out.println(response);

        assertTrue("The server doesn't accept ranges", response.getHeaders().containsKey("Accept-ranges"));
        assertTrue("The server doesn't accept ranges with bytes",
                response.getHeaders().get("Accept-ranges").contains("bytes"));
    }

    long fileLength = 0;

    {
        // Range: bytes=0-

        HttpHeaders requestHeaders = new HttpHeaders();
        requestHeaders.set("Range", "bytes=0-");

        MultiValueMap<String, String> postParameters = new LinkedMultiValueMap<String, String>();

        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(
                postParameters, requestHeaders);

        ResponseEntity<byte[]> response = httpClient.exchange(url, HttpMethod.GET, requestEntity, byte[].class);

        System.out.println(response);

        assertEquals("The server doesn't respond with http status code 206 to a request with ranges",
                HttpStatus.PARTIAL_CONTENT, response.getStatusCode());

        fileLength = Long.parseLong(response.getHeaders().get("Content-Length").get(0));

    }

    {
        HttpHeaders requestHeaders = new HttpHeaders();

        long firstByte = fileLength - 3000;
        long lastByte = fileLength - 1;
        long numBytes = lastByte - firstByte + 1;

        requestHeaders.set("Range", "bytes=" + firstByte + "-" + lastByte);

        MultiValueMap<String, String> postParameters = new LinkedMultiValueMap<String, String>();

        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(
                postParameters, requestHeaders);

        ResponseEntity<byte[]> response = httpClient.exchange(url, HttpMethod.GET, requestEntity, byte[].class);

        System.out.println(response);

        assertEquals("The server doesn't respond with http status code 206 to a request with ranges",
                response.getStatusCode(), HttpStatus.PARTIAL_CONTENT);

        long responseContentLength = Long.parseLong(response.getHeaders().get("Content-Length").get(0));
        assertEquals("The server doesn't send the requested bytes", numBytes, responseContentLength);

        assertEquals("The server doesn't send the requested bytes", responseContentLength,
                response.getBody().length);

    }
}

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

@Test
public void testSuccessfulAuthorizationCodeFlow() throws Exception {

    HttpHeaders headers = new HttpHeaders();
    // TODO: should be able to handle just TEXT_HTML
    headers.setAccept(Arrays.asList(MediaType.TEXT_HTML, MediaType.ALL));

    AuthorizationCodeResourceDetails resource = testAccounts.getDefaultAuthorizationCodeResource();

    URI uri = serverRunning.buildUri("/oauth/authorize").queryParam("response_type", "code")
            .queryParam("state", "mystateid").queryParam("client_id", resource.getClientId())
            .queryParam("redirect_uri", resource.getPreEstablishedRedirectUri()).build();
    ResponseEntity<Void> result = serverRunning.getForResponse(uri.toString(), headers);
    assertEquals(HttpStatus.FOUND, result.getStatusCode());
    String location = result.getHeaders().getLocation().toString();

    if (result.getHeaders().containsKey("Set-Cookie")) {
        String cookie = result.getHeaders().getFirst("Set-Cookie");
        headers.set("Cookie", cookie);
    }/*from w w  w .j av a2  s  .c o m*/

    ResponseEntity<String> response = serverRunning.getForString(location, headers);
    // should be directed to the login screen...
    assertTrue(response.getBody().contains("/login.do"));
    assertTrue(response.getBody().contains("auth_key"));
    assertTrue(response.getBody().contains("password"));

    MultiValueMap<String, String> formData = new LinkedMultiValueMap<String, String>();
    formData.add("auth_key", testAccounts.getUserName());
    formData.add("password", testAccounts.getPassword());

    // Should be redirected to the original URL, but now authenticated
    result = serverRunning.postForResponse("/login.do", headers, formData);
    assertEquals(HttpStatus.FOUND, result.getStatusCode());

    if (result.getHeaders().containsKey("Set-Cookie")) {
        String cookie = result.getHeaders().getFirst("Set-Cookie");
        headers.set("Cookie", cookie);
    }

    response = serverRunning.getForString(result.getHeaders().getLocation().toString(), headers);
    if (response.getStatusCode() == HttpStatus.OK) {
        // The grant access page should be returned
        assertTrue(response.getBody().contains("Do you authorize"));

        formData.clear();
        formData.add("user_oauth_approval", "true");
        result = serverRunning.postForResponse("/oauth/authorize", headers, formData);
        assertEquals(HttpStatus.FOUND, result.getStatusCode());
        location = result.getHeaders().getLocation().toString();
    } else {
        // Token cached so no need for second approval
        assertEquals(HttpStatus.FOUND, response.getStatusCode());
        location = response.getHeaders().getLocation().toString();
    }
    assertTrue("Wrong location: " + location,
            location.matches(resource.getPreEstablishedRedirectUri() + ".*code=.+"));

    formData.clear();
    formData.add("client_id", resource.getClientId());
    formData.add("redirect_uri", resource.getPreEstablishedRedirectUri());
    formData.add("grant_type", "authorization_code");
    formData.add("code", location.split("code=")[1].split("&")[0]);
    HttpHeaders tokenHeaders = new HttpHeaders();
    tokenHeaders.set("Authorization",
            testAccounts.getAuthorizationHeader(resource.getClientId(), resource.getClientSecret()));
    @SuppressWarnings("rawtypes")
    ResponseEntity<Map> tokenResponse = serverRunning.postForMap("/oauth/token", formData, tokenHeaders);
    assertEquals(HttpStatus.OK, tokenResponse.getStatusCode());
    @SuppressWarnings("unchecked")
    Map<String, String> body = tokenResponse.getBody();
    Jwt token = JwtHelper.decode(body.get("access_token"));
    assertTrue("Wrong claims: " + token.getClaims(), token.getClaims().contains("\"aud\""));
    assertTrue("Wrong claims: " + token.getClaims(), token.getClaims().contains("\"user_id\""));
}

From source file:org.cloudfoundry.identity.uaa.login.integration.AuthorizationCodeGrantIntegrationTests.java

@Test
public void testSuccessfulAuthorizationCodeFlow() throws Exception {

    HttpHeaders headers = new HttpHeaders();
    // TODO: should be able to handle just TEXT_HTML
    headers.setAccept(Arrays.asList(MediaType.TEXT_HTML, MediaType.ALL));

    AuthorizationCodeResourceDetails resource = testAccounts.getDefaultAuthorizationCodeResource();

    URI uri = serverRunning.buildUri("/oauth/authorize").queryParam("response_type", "code")
            .queryParam("state", "mystateid").queryParam("client_id", resource.getClientId())
            .queryParam("redirect_uri", resource.getPreEstablishedRedirectUri()).build();
    ResponseEntity<Void> result = serverRunning.getForResponse(uri.toString(), headers);
    assertEquals(HttpStatus.FOUND, result.getStatusCode());
    String location = result.getHeaders().getLocation().toString();

    if (result.getHeaders().containsKey("Set-Cookie")) {
        String cookie = result.getHeaders().getFirst("Set-Cookie");
        headers.set("Cookie", cookie);
    }/*from w  ww .  ja v  a 2  s. c  o  m*/

    ResponseEntity<String> response = serverRunning.getForString(location, headers);
    // should be directed to the login screen...
    String body = response.getBody();
    assertTrue(body.contains("/login.do"));
    assertTrue(body.contains("username"));
    assertTrue(body.contains("password"));

    MultiValueMap<String, String> formData = new LinkedMultiValueMap<String, String>();
    formData.add("username", testAccounts.getUserName());
    formData.add("password", testAccounts.getPassword());

    // Should be redirected to the original URL, but now authenticated
    result = serverRunning.postForResponse("/login.do", headers, formData);
    assertEquals(HttpStatus.FOUND, result.getStatusCode());

    if (result.getHeaders().containsKey("Set-Cookie")) {
        String cookie = result.getHeaders().getFirst("Set-Cookie");
        headers.set("Cookie", cookie);
    }

    response = serverRunning.getForString(result.getHeaders().getLocation().toString(), headers);
    if (response.getStatusCode() == HttpStatus.OK) {
        body = response.getBody();
        // The grant access page should be returned
        assertTrue(body.contains("Application Authorization"));
        // Forms should have the right action
        assertTrue(body.matches("(?s).*\\saction=\"\\S*oauth/authorize\".*"));

        formData.clear();
        formData.add("user_oauth_approval", "true");
        result = serverRunning.postForResponse("/oauth/authorize", headers, formData);
        assertEquals(HttpStatus.FOUND, result.getStatusCode());
        location = result.getHeaders().getLocation().toString();
    } else {
        // Token cached so no need for second approval
        assertEquals(HttpStatus.FOUND, response.getStatusCode());
        location = response.getHeaders().getLocation().toString();
    }
    assertTrue("Wrong location: " + location,
            location.matches(resource.getPreEstablishedRedirectUri() + ".*code=.+"));
    assertFalse("Location should not contain cookie: " + location,
            location.matches(resource.getPreEstablishedRedirectUri() + ".*cookie=.+"));

    formData.clear();
    formData.add("client_id", resource.getClientId());
    formData.add("redirect_uri", resource.getPreEstablishedRedirectUri());
    formData.add("grant_type", "authorization_code");
    formData.add("code", location.split("code=")[1].split("&")[0]);
    HttpHeaders tokenHeaders = new HttpHeaders();
    tokenHeaders.set("Authorization",
            testAccounts.getAuthorizationHeader(resource.getClientId(), resource.getClientSecret()));
    @SuppressWarnings("rawtypes")
    ResponseEntity<Map> tokenResponse = serverRunning.postForMap("/oauth/token", formData, tokenHeaders);
    assertEquals(HttpStatus.OK, tokenResponse.getStatusCode());
}