@Override protected void addExtraHeaders(Builder webResource) { if (additionalHeaders != null) { for (String key : additionalHeaders.keySet()) { webResource.header(key, additionalHeaders.get(key)); } } } }
public Repository getRepository(String url) { String[] urlParts = url.split("/"); String owner = urlParts[urlParts.length - 2]; String name = urlParts[urlParts.length - 1]; String path = String.format(REPOSITORY_PATH, owner, name); WebResource resource = client.resource(GITHUB_URL).path(path); return resource.type(MediaType.APPLICATION_JSON_TYPE) .accept(MediaType.APPLICATION_JSON_TYPE) .header("Authorization", authorizationHeader) .get(Repository.class); }
private Builder builder( String path, final MediaType accept ) { WebResource resource = client.resource( uri( pathOrAbsolute( path ) ) ); Builder builder = resource.accept( accept ); if ( !headers.isEmpty() ) { for ( Map.Entry<String,String> header : headers.entrySet() ) { builder = builder.header( header.getKey(), header.getValue() ); } } return builder; }
@Override public String runNativeScript(String sessionToken, String nativeScript, String persistenceUnit) { log.debug("\n\nUpdating Entity... " + nativeScript); WebResource.Builder updateBuilder = webResource.path(Constants.KUNDERA_API_PATH + Constants.NATIVE_QUERY_RESOURCE_PATH + persistenceUnit) .type(mediaType).accept(mediaType).header(Constants.SESSION_TOKEN_HEADER_NAME, sessionToken); ClientResponse updateResponse = updateBuilder.put(ClientResponse.class, nativeScript); InputStream is = updateResponse.getEntityInputStream(); String updatedEntityStr = StreamUtils.toString(is); log.debug("Updated Entity: " + updatedEntityStr); return updatedEntityStr; }
@Override public void deleteEntity(String sessionToken, String entityStr, String pk, String entityClassName) { log.debug("\n\nDeleting Entity... " + entityStr); WebResource.Builder deleteBuilder = webResource.path(Constants.KUNDERA_API_PATH + "/crud/" + entityClassName + "/delete/" + pk) .accept(MediaType.TEXT_PLAIN).header(Constants.SESSION_TOKEN_HEADER_NAME, sessionToken); ClientResponse deleteResponse = (ClientResponse) deleteBuilder.delete(ClientResponse.class); log.debug("Delete Response:" + deleteResponse.getStatus()); }
@Override public String updateEntity(String sessionToken, String newEntityStr, String entityClassName) { log.debug("\n\nUpdating Entity... " + newEntityStr); WebResource.Builder updateBuilder = webResource.path(Constants.KUNDERA_API_PATH + "/crud/" + entityClassName).type(mediaType).accept(mediaType) .header(Constants.SESSION_TOKEN_HEADER_NAME, sessionToken); ClientResponse updateResponse = updateBuilder.put(ClientResponse.class, newEntityStr); InputStream is = updateResponse.getEntityInputStream(); String updatedEntityStr = StreamUtils.toString(is); log.debug("Updated Entity: " + updatedEntityStr); return updatedEntityStr; }
builder = builder.header( data.headerNames[i], value ); if ( "Content-Type".equals( data.headerNames[i] ) ) { contentType = value;
public void addCommitComment(Repository repository, Commit commit, String comment) { try { String path = String.format(COMMENT_PATH, repository.getOwner().getName(), repository.getName(), commit.getSha()); WebResource resource = client.resource(GITHUB_URL).path(path); ClientResponse response = resource.type(MediaType.APPLICATION_JSON_TYPE) .accept(MediaType.APPLICATION_JSON) .header("Authorization", authorizationHeader) .entity(new CommitComment(comment)) .post(ClientResponse.class); if (response.getStatus() < 200 || response.getStatus() >=300) { logger.warn("Commit comment failed: " + response.getClientResponseStatus().getReasonPhrase()); } } catch (UniformInterfaceException | ClientHandlerException e) { logger.warn("Comment failed", e); } }
private void initManaged( PurRepositoryMeta repositoryMeta, IUser userInfo ) throws JSONException { String baseUrl = repositoryMeta.getRepositoryLocation().getUrl(); String webService = baseUrl + ( baseUrl.endsWith( "/" ) ? "" : "/" ) + "api/system/authentication-provider"; HTTPBasicAuthFilter authFilter = new HTTPBasicAuthFilter( userInfo.getLogin(), userInfo.getPassword() ); Client client = new Client(); client.addFilter( authFilter ); WebResource.Builder resource = client.resource( webService ).accept( MediaType.APPLICATION_JSON_TYPE ); /** * if set, _trust_user_ needs to be considered. See other places in pur-plugin's: * * @link https://github.com/pentaho/pentaho-kettle/blob/8.0.0.0-R/plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepositoryConnector.java#L97-L101 * @link https://github.com/pentaho/pentaho-kettle/blob/8.0.0.0-R/plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/WebServiceManager.java#L130-L133 */ if ( StringUtils.isNotBlank( System.getProperty( "pentaho.repository.client.attemptTrust" ) ) ) { resource = resource.header( TRUST_USER, userInfo.getLogin() ); } String response = resource.get( String.class ); String provider = new JSONObject( response ).getString( "authenticationType" ); managed = "jackrabbit".equals( provider ); }
public String getCommitDescription(String commitUrl) { String[] commitUrlParts = commitUrl.split("/"); String owner = commitUrlParts[commitUrlParts.length - 4]; String repository = commitUrlParts[commitUrlParts.length - 3]; String commit = commitUrlParts[commitUrlParts.length - 1]; String path = String.format(COMMIT_PATH, owner, repository, commit); WebResource resource = client.resource(GITHUB_URL).path(path); Commit response = resource.type(MediaType.APPLICATION_JSON_TYPE) .accept(MediaType.APPLICATION_JSON_TYPE) .header("Authorization", authorizationHeader) .get(Commit.class); return response.getMessage(); }
@Override public EurekaHttpResponse<Void> register(InstanceInfo info) { String urlPath = "apps/" + info.getAppName(); ClientResponse response = null; try { Builder resourceBuilder = jerseyClient.resource(serviceUrl).path(urlPath).getRequestBuilder(); addExtraHeaders(resourceBuilder); response = resourceBuilder .header("Accept-Encoding", "gzip") .type(MediaType.APPLICATION_JSON_TYPE) .accept(MediaType.APPLICATION_JSON) .post(ClientResponse.class, info); return anEurekaHttpResponse(response.getStatus()).headers(headersOf(response)).build(); } finally { if (logger.isDebugEnabled()) { logger.debug("Jersey HTTP POST {}/{} with instance {}; statusCode={}", serviceUrl, urlPath, info.getId(), response == null ? "N/A" : response.getStatus()); } if (response != null) { response.close(); } } }
@Test public void shouldUseXForwardedHostAndXForwardedProtoHeadersInCypherResponseRepresentations() { // when String jsonString = "{\"statements\" : [{ \"statement\": \"MATCH (n) RETURN n\", " + "\"resultDataContents\":[\"REST\"] }] }"; ClientResponse response = client.resource( getServerUri() + "db/data/transaction" ) .accept( APPLICATION_JSON ) .header( X_FORWARDED_HOST, "jimwebber.org:2354" ) .header( X_FORWARDED_PROTO, "https" ) .entity( jsonString, MediaType.APPLICATION_JSON_TYPE ) .post( ClientResponse.class ); // then String entity = response.getEntity( String.class ); assertTrue( entity.contains( "https://jimwebber.org:2354" ) ); assertFalse( entity.contains( getServerUri() ) ); }
@Test public void shouldUseXForwardedHostAndXForwardedProtoHeadersWhenPresent() { // when ClientResponse response = client.resource( getManageUri() ) .accept( APPLICATION_JSON ) .header( X_FORWARDED_HOST, "jimwebber.org" ) .header( X_FORWARDED_PROTO, "https" ) .get( ClientResponse.class ); // then String entity = response.getEntity( String.class ); assertTrue( entity.contains( "https://jimwebber.org" ) ); assertFalse( entity.contains( getServerUri() ) ); }
@Test public void shouldUseXForwardedHostHeaderWhenPresent() { // when ClientResponse response = client.resource( getManageUri() ) .accept( APPLICATION_JSON ) .header( X_FORWARDED_HOST, "jimwebber.org" ) .get( ClientResponse.class ); // then String entity = response.getEntity( String.class ); assertTrue( entity.contains( "http://jimwebber.org" ) ); assertFalse( entity.contains( "http://localhost" ) ); }
@Test public void shouldPickFirstXForwardedHostHeaderValueFromCommaOrCommaAndSpaceSeparatedList() { // when ClientResponse response = client.resource( getManageUri() ) .accept( APPLICATION_JSON ) .header( X_FORWARDED_HOST, "jimwebber.org, kathwebber.com,neo4j.org" ) .get( ClientResponse.class ); // then String entity = response.getEntity( String.class ); assertTrue( entity.contains( "http://jimwebber.org" ) ); assertFalse( entity.contains( "http://localhost" ) ); }
@Test public void shouldUseXForwardedProtoHeaderWhenPresent() { // when ClientResponse response = client.resource( getManageUri() ) .accept( APPLICATION_JSON ) .header( X_FORWARDED_PROTO, "https" ) .get( ClientResponse.class ); // then String entity = response.getEntity( String.class ); assertTrue( entity.contains( "https://localhost" ) ); assertFalse( entity.contains( "http://localhost" ) ); }
@Test public void shouldUseBaseUriIfFirstAddressInXForwardedHostHeaderIsBad() { // when ClientResponse response = client.resource( getManageUri() ) .accept( APPLICATION_JSON ) .header( X_FORWARDED_HOST, ":bad_URI,good-host" ) .get( ClientResponse.class ); // then String entity = response.getEntity( String.class ); assertTrue( entity.contains( getServerUri() ) ); }
@Override protected void addExtraHeaders(Builder webResource) { webResource.header(PeerEurekaNode.HEADER_REPLICATION, "true"); }
@Test public void shouldUseBaseUriOnBadXForwardedHostHeader() { // when ClientResponse response = client.resource( getManageUri() ) .accept( APPLICATION_JSON ) .header( X_FORWARDED_HOST, ":bad_URI" ) .get( ClientResponse.class ); // then String entity = response.getEntity( String.class ); assertTrue( entity.contains( getServerUri() ) ); }
@Test public void shouldUseBaseUriOnBadXForwardedProtoHeader() { // when ClientResponse response = client.resource( getManageUri() ) .accept( APPLICATION_JSON ) .header( X_FORWARDED_PROTO, "%%%DEFINITELY-NOT-A-PROTO!" ) .get( ClientResponse.class ); // then String entity = response.getEntity( String.class ); assertTrue( entity.contains( getServerUri() ) ); }