httpClient instead of restTemplate

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-access/gcube-geonetwork-connector@160116 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
vincenzo.terrano 2017-12-06 14:58:41 +00:00
parent 0469c391e9
commit 907ee88b47
7 changed files with 207 additions and 122 deletions

View File

@ -27,7 +27,7 @@
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_75"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>

26
pom.xml
View File

@ -13,7 +13,12 @@
<scm> <scm>
<url>https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-access/gcube-geonetwork-connector/</url> <url>https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-access/gcube-geonetwork-connector/</url>
</scm> </scm>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
@ -64,14 +69,14 @@
<artifactId>commons-codec</artifactId> <artifactId>commons-codec</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId> <artifactId>spring-web</artifactId>
<version>3.2.13.RELEASE</version> <version>2.5</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId> <artifactId>spring-core</artifactId>
<version>3.2.13.RELEASE</version> <version>2.5</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.sf.json-lib</groupId> <groupId>net.sf.json-lib</groupId>
@ -84,8 +89,13 @@
<artifactId>httpclient</artifactId> <artifactId>httpclient</artifactId>
<version>4.5.2</version> <version>4.5.2</version>
</dependency> </dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.6.2</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>

View File

@ -4,10 +4,15 @@ import java.io.IOException;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost; import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig; import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
@ -15,9 +20,7 @@ import org.gcube.data.access.connector.rest.entity.AccessibleCredentialsEntity;
import org.gcube.data.access.connector.rest.entity.SDIEntity; import org.gcube.data.access.connector.rest.entity.SDIEntity;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.HttpMethod; import com.google.gson.Gson;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
@ -27,20 +30,28 @@ public class GCubeRestClient {
private static String CONTEXT_USER = "CONTEXT_USER"; private static String CONTEXT_USER = "CONTEXT_USER";
private Logger logger = LoggerFactory.getLogger(this.getClass()); private Logger logger = LoggerFactory.getLogger(this.getClass());
public AccessibleCredentialsEntity getAccessibleCredentials(String url) { public AccessibleCredentialsEntity getAccessibleCredentials(String url) {
System.out.println("REST call to URL: " + url); CloseableHttpClient httpclient = HttpClients.custom().build();
RestTemplate restTemplate = new RestTemplate();
RequestConfig config = RequestConfig.custom().build();
HttpGet httpget = new HttpGet(url);
httpget.setConfig(config);
logger.warn("Executing request " + httpget.getRequestLine() + " to " + url);
try { try {
String response = restTemplate.getForObject(url, String.class);
System.out.println("JSON response: \n" + response); CloseableHttpResponse response = httpclient.execute(httpget);
String json = EntityUtils.toString(response.getEntity());
logger.warn("JSON response: \n" + json);
JSONObject jsonObject = JSONObject.fromObject(response); JSONObject jsonObject = JSONObject.fromObject(json);
return (AccessibleCredentialsEntity) JSONObject.toBean(jsonObject, AccessibleCredentialsEntity.class); return (AccessibleCredentialsEntity) JSONObject.toBean(jsonObject, AccessibleCredentialsEntity.class);
} catch (Exception e) { } catch (Exception e) {
System.out.println("Error in getAccessibleCredentials() method: " + e.getMessage()); logger.error("Error in getAccessibleCredentials() method: " + e.getMessage());
return new AccessibleCredentialsEntity(); return new AccessibleCredentialsEntity();
} }
} }
@ -48,17 +59,32 @@ public class GCubeRestClient {
public AccessibleCredentialsEntity getGeneralAccessibleCredentials(String url, String host) { public AccessibleCredentialsEntity getGeneralAccessibleCredentials(String url, String host) {
logger.warn("REST call to URL: " + url); logger.warn("REST call to URL: " + url);
RestTemplate restTemplate = new RestTemplate();
CloseableHttpClient httpclient = HttpClients.custom().build();
HttpHost target = new HttpHost(host);
RequestConfig config = RequestConfig.custom().build();
HttpGet httpget = new HttpGet(url);
httpget.setConfig(config);
logger.warn("Executing request " + httpget.getRequestLine() + " to " + url);
try { try {
ResponseEntity<SDIEntity> response = restTemplate.exchange(url, HttpMethod.GET, null, SDIEntity.class);
String baseEndpoint = response.getBody().getGeonetworkConfiguration().getBaseEndpoint(); CloseableHttpResponse resp = httpclient.execute(target, httpget);
AccessibleCredentialsEntity result = new AccessibleCredentialsEntity(); String json = EntityUtils.toString(resp.getEntity());
logger.warn("JSON response: \n" + json);
Gson gson = new Gson();
SDIEntity response =(SDIEntity) gson.fromJson(json, SDIEntity.class);
String baseEndpoint = response.getGeonetworkConfiguration().get(0).getBaseEndpoint();
AccessibleCredentialsEntity result = new AccessibleCredentialsEntity();
if (baseEndpoint.contains(host)){ if (baseEndpoint.contains(host)){
//get credentials from geonetworkConfiguration - to give priority on CONTEXT_MANAGER (if it exists), otherwise CONTEXT_USER
List<AccessibleCredentialsEntity> credentials = response.getBody().getGeonetworkConfiguration().getAccessibleCredentials(); List<AccessibleCredentialsEntity> credentials = response.getGeonetworkConfiguration().get(0).getAccessibleCredentials();
Iterator<AccessibleCredentialsEntity> iter = credentials.iterator(); Iterator<AccessibleCredentialsEntity> iter = credentials.iterator();
while (iter.hasNext()){ while (iter.hasNext()){
AccessibleCredentialsEntity entity = iter.next(); AccessibleCredentialsEntity entity = iter.next();
@ -89,20 +115,20 @@ public class GCubeRestClient {
HttpGet httpget = new HttpGet(get); HttpGet httpget = new HttpGet(get);
httpget.setConfig(config); httpget.setConfig(config);
System.out.println("Executing request " + httpget.getRequestLine() + " to " + target); logger.warn("Executing request " + httpget.getRequestLine() + " to " + get);
try { try {
CloseableHttpResponse response = httpclient.execute(target, httpget); CloseableHttpResponse response = httpclient.execute(target, httpget);
String json = EntityUtils.toString(response.getEntity()); String json = EntityUtils.toString(response.getEntity());
System.out.println(json); logger.warn("JSON response: \n" + json);
JSONObject jsonObject = JSONObject.fromObject(json); JSONObject jsonObject = JSONObject.fromObject(json);
AccessibleCredentialsEntity ac = (AccessibleCredentialsEntity) JSONObject.toBean(jsonObject, AccessibleCredentialsEntity.class); AccessibleCredentialsEntity ac = (AccessibleCredentialsEntity) JSONObject.toBean(jsonObject, AccessibleCredentialsEntity.class);
System.out.println(ac.getUsername()); logger.info("Credentials Entity Username: "+ac.getUsername());
return ac; return ac;
} catch (IOException e) { } catch (IOException e) {
System.out.println(e.getMessage()); logger.error("Error in getAccessibleCredentialsHttp() method: " + e.getMessage());
return new AccessibleCredentialsEntity(); return new AccessibleCredentialsEntity();
} }
} }

View File

@ -1,10 +1,12 @@
package org.gcube.data.access.connector.rest.entity; package org.gcube.data.access.connector.rest.entity;
import java.util.List;
public class SDIEntity { public class SDIEntity {
private String contextName; private String contextName;
private InstancesEntity geonetworkConfiguration; private List<InstancesEntity> geonetworkConfiguration;
private GeoserverClusterConfigurationEntity geoserverClusterConfiguration; private List<GeoserverClusterConfigurationEntity> geoserverClusterConfiguration;
public String getContextName() { public String getContextName() {
return contextName; return contextName;
@ -14,19 +16,19 @@ public class SDIEntity {
this.contextName = contextName; this.contextName = contextName;
} }
public InstancesEntity getGeonetworkConfiguration() { public List<InstancesEntity> getGeonetworkConfiguration() {
return geonetworkConfiguration; return geonetworkConfiguration;
} }
public void setGeonetworkConfiguration(InstancesEntity geonetworkConfiguration) { public void setGeonetworkConfiguration(List<InstancesEntity> geonetworkConfiguration) {
this.geonetworkConfiguration = geonetworkConfiguration; this.geonetworkConfiguration = geonetworkConfiguration;
} }
public GeoserverClusterConfigurationEntity getGeoserverClusterConfiguration() { public List<GeoserverClusterConfigurationEntity> getGeoserverClusterConfiguration() {
return geoserverClusterConfiguration; return geoserverClusterConfiguration;
} }
public void setGeoserverClusterConfiguration(GeoserverClusterConfigurationEntity geoserverClusterConfiguration) { public void setGeoserverClusterConfiguration(List<GeoserverClusterConfigurationEntity> geoserverClusterConfiguration) {
this.geoserverClusterConfiguration = geoserverClusterConfiguration; this.geoserverClusterConfiguration = geoserverClusterConfiguration;
} }

View File

@ -2,35 +2,58 @@ package org.gcube.data.access.connector;
import java.util.Arrays; import java.util.Arrays;
import net.sf.json.JSONObject;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.springframework.http.HttpEntity; import org.apache.http.HttpHost;
import org.springframework.http.HttpHeaders; import org.apache.http.auth.AuthScope;
import org.springframework.http.HttpMethod; import org.apache.http.auth.UsernamePasswordCredentials;
import org.springframework.http.MediaType; import org.apache.http.client.CredentialsProvider;
import org.springframework.http.ResponseEntity; import org.apache.http.client.config.RequestConfig;
import org.springframework.web.client.RestTemplate; import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.gcube.data.access.connector.rest.entity.AccessibleCredentialsEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test { public class Test {
private static Logger logger = LoggerFactory.getLogger("Test");
public static void main(String[] args) { public static void main(String[] args) {
try { try {
String url = "http://geonetwork-sdi.dev.d4science.org/geonetwork/srv/api/0.1/me"; logger.info("Test");
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); String url = "http://geonetwork-sdi.dev.d4science.org/geonetwork/srv/api/0.1/me";
String token = "admin:admin"; String token = "admin:admin";
headers.add("Authorization", "Basic " + Base64.encodeBase64String(token.getBytes()));
CredentialsProvider credsProvider = new BasicCredentialsProvider();
HttpEntity<String> entity = new HttpEntity<String>("parameters", headers); credsProvider.setCredentials(new AuthScope("proxy.eng.it", 3128), new UsernamePasswordCredentials("usr", "pass"));
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
System.out.println("Result - status ("+ response.getStatusCode() + ") has body: " + response.hasBody()); CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
System.out.println(response.getBody()); HttpHost proxy = new HttpHost("proxy.eng.it", 3128);
// String response = restTemplate.getForObject(url, String.class); RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
// System.out.println(response); HttpGet httpget = new HttpGet(url);
httpget.setConfig(config);
httpget.setHeader("Content-type", "application/json");
httpget.setHeader("Authorization", "Basic " + Base64.encodeBase64String(token.getBytes()));
logger.warn("Executing request " + httpget.getRequestLine() + " to " + url);
CloseableHttpResponse response = httpclient.execute(httpget);
System.out.println("response code: "+ response.getStatusLine().getStatusCode());
String json = EntityUtils.toString(response.getEntity());
logger.warn("JSON response: \n" + json);
logger.info("Result - status ("+ response.getStatusLine().getStatusCode() + ") has body: " + response.getEntity());
} catch (Exception e) { } catch (Exception e) {
System.out.println("Error: " + e.getMessage()); logger.error("Error in Test: " + e.getMessage());
} }
} }

View File

@ -7,88 +7,108 @@ import java.net.Proxy;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import net.sf.json.JSONObject;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.gcube.data.access.connector.rest.entity.AccessibleCredentialsEntity; import org.gcube.data.access.connector.rest.entity.AccessibleCredentialsEntity;
import org.gcube.data.access.connector.rest.entity.SDIEntity; import org.gcube.data.access.connector.rest.entity.SDIEntity;
import org.springframework.http.HttpMethod; import org.slf4j.Logger;
import org.springframework.http.ResponseEntity; import org.slf4j.LoggerFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory; import com.google.gson.Gson;
import org.springframework.web.client.RestTemplate;
public class TestGeonetworkConfiguration { public class TestGeonetworkConfiguration {
private static String CONTEXT_MANAGER = "CONTEXT_MANAGER"; private static String CONTEXT_MANAGER = "CONTEXT_MANAGER";
private static String CONTEXT_USER = "CONTEXT_USER"; private static String CONTEXT_USER = "CONTEXT_USER";
private static Logger logger = LoggerFactory.getLogger("TestGeonetworkConfiguration");
public static void main(String[] args) { public static void main(String[] args) {
try { try {
logger.info("TestGeonetworkConfiguration");
String url = "http://sdi-d-d4s.d4science.org/sdi-service/gcube/service/SDI?gcube-token=feda0617-cd9d-4841-b6f0-e047da5d32ed-98187548"; String url = "http://sdi-d-d4s.d4science.org/sdi-service/gcube/service/SDI?gcube-token=feda0617-cd9d-4841-b6f0-e047da5d32ed-98187548";
RestTemplate restTemplate = new RestTemplate(); //getRestTemplate();
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope("proxy.eng.it", 3128), new UsernamePasswordCredentials("usr", "pass"));
//String response = restTemplate.getForObject(url, String.class); CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
//System.out.println(response); HttpHost proxy = new HttpHost("proxy.eng.it", 3128);
RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
HttpGet httpget = new HttpGet(url);
httpget.setConfig(config);
ResponseEntity<SDIEntity> response = restTemplate.exchange(url, HttpMethod.GET, null, SDIEntity.class); logger.warn("Executing request " + httpget.getRequestLine() + " to " + url);
System.out.println("Result " + response.getBody().getGeonetworkConfiguration().getBaseEndpoint() );
//System.out.println("Result " + response.getBody().getGeoserverClusterConfiguration().getAvailableInstances().get(0).getBaseEndpoint() );
System.out.println("Result " + getAccessibleCredentials().getAccessType()); CloseableHttpResponse resp = httpclient.execute(httpget);
String json = EntityUtils.toString(resp.getEntity());
logger.warn("JSON response: \n" + json);
Gson gson = new Gson();
SDIEntity response =(SDIEntity) gson.fromJson(json, SDIEntity.class);
logger.warn("SDIEntity: \n" + response.toString());
logger.info("Credentials AccessType " + getAccessibleCredentials().getAccessType());
} catch (Exception e) { } catch (Exception e) {
System.out.println("Error: " + e.getMessage()); logger.error("Error in TestGeonetworkConfiguration: " + e.getMessage());
} }
} }
public static AccessibleCredentialsEntity getAccessibleCredentials() { public static AccessibleCredentialsEntity getAccessibleCredentials() {
String url = "http://sdi-d-d4s.d4science.org/sdi-service/gcube/service/SDI?gcube-token=feda0617-cd9d-4841-b6f0-e047da5d32ed-98187548"; try {
RestTemplate restTemplate = new RestTemplate(); //getRestTemplate(); String url = "http://sdi-d-d4s.d4science.org/sdi-service/gcube/service/SDI?gcube-token=feda0617-cd9d-4841-b6f0-e047da5d32ed-98187548";
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope("proxy.eng.it", 3128), new UsernamePasswordCredentials("usr", "pass"));
String host = "geonetwork-sdi.dev.d4science.org"; CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
//String host = "geonetwork1-d-d4s.d4science.org"; HttpHost proxy = new HttpHost("proxy.eng.it", 3128);
ResponseEntity<SDIEntity> response = restTemplate.exchange(url, HttpMethod.GET, null, SDIEntity.class); RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
//System.out.println("Result " + response.getBody().getGeonetworkConfiguration().getBaseEndpoint() ); HttpGet httpget = new HttpGet(url);
//System.out.println("Result " + response.getBody().getGeoserverClusterConfiguration().getAvailableInstances().get(0).getBaseEndpoint() ); httpget.setConfig(config);
String baseEndpoint = response.getBody().getGeonetworkConfiguration().getBaseEndpoint(); String host = "geonetwork1-d-d4s.d4science.org";
AccessibleCredentialsEntity result = new AccessibleCredentialsEntity(); logger.warn("Executing request " + httpget.getRequestLine() + " to " + url);
if (baseEndpoint.contains(host)){ CloseableHttpResponse resp = httpclient.execute(httpget);
List<AccessibleCredentialsEntity> credentials = response.getBody().getGeonetworkConfiguration().getAccessibleCredentials(); String json = EntityUtils.toString(resp.getEntity());
Iterator<AccessibleCredentialsEntity> iter = credentials.iterator(); logger.warn("JSON response: \n" + json);
while (iter.hasNext()){
AccessibleCredentialsEntity entity = iter.next(); Gson gson = new Gson();
if (CONTEXT_MANAGER.equals(entity.getAccessType())){ SDIEntity response =(SDIEntity) gson.fromJson(json, SDIEntity.class);
return entity;
} String baseEndpoint = response.getGeonetworkConfiguration().get(0).getBaseEndpoint();
if ((result.getAccessType() == null) && CONTEXT_USER.equals(entity.getAccessType())){ AccessibleCredentialsEntity result = new AccessibleCredentialsEntity();
result = entity;
if (baseEndpoint.contains(host)){
List<AccessibleCredentialsEntity> credentials = response.getGeonetworkConfiguration().get(0).getAccessibleCredentials();
Iterator<AccessibleCredentialsEntity> iter = credentials.iterator();
while (iter.hasNext()){
AccessibleCredentialsEntity entity = iter.next();
if (CONTEXT_MANAGER.equals(entity.getAccessType())){
return entity;
}
if ((result.getAccessType() == null) && CONTEXT_USER.equals(entity.getAccessType())){
result = entity;
}
} }
} }
return result;
} catch (Exception e) {
logger.error("Error in getAccessibleCredentials: " + e.getMessage());
} }
return null;
return result;
} }
private static RestTemplate getRestTemplate() {
final Authenticator authenticator = new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication("username", "password".toCharArray()));
}
};
Authenticator.setDefault(authenticator);
final SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
final InetSocketAddress address = new InetSocketAddress("proxy.eng.it", 3128);
final Proxy proxy = new Proxy(Proxy.Type.HTTP, address);
factory.setProxy(proxy);
final RestTemplate restTemplate = new RestTemplate();
restTemplate.setRequestFactory(factory);// pass the factory instance to restTemplate
return restTemplate;
}
} }

View File

@ -12,19 +12,25 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.gcube.data.access.connector.rest.entity.AccessibleCredentialsEntity; import org.gcube.data.access.connector.rest.entity.AccessibleCredentialsEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
public class TestRest { public class TestRest {
private static Logger logger = LoggerFactory.getLogger("TestRest");
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
logger.info("TestRest");
String url = "sdi-d-d4s.d4science.org"; String url = "sdi-d-d4s.d4science.org";
//http://sdi-d-d4s.d4science.org/sdi-service/gcube/service/GeoNetwork/credentials/geonetwork-sdi.dev.d4science.org?gcube-token=feda0617-cd9d-4841-b6f0-e047da5d32ed-98187548 //http://sdi-d-d4s.d4science.org/sdi-service/gcube/service/GeoNetwork/credentials/geonetwork-sdi.dev.d4science.org?gcube-token=feda0617-cd9d-4841-b6f0-e047da5d32ed-98187548
CredentialsProvider credsProvider = new BasicCredentialsProvider(); CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope("proxy.eng.it", 3128), new UsernamePasswordCredentials("user", "pwd")); credsProvider.setCredentials(new AuthScope("proxy.eng.it", 3128), new UsernamePasswordCredentials("usr", "pass"));
CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build(); CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
try { try {
@ -35,20 +41,18 @@ public class TestRest {
HttpGet httpget = new HttpGet("/sdi-service/gcube/service/GeoNetwork/credentials/geonetwork-sdi.dev.d4science.org?gcube-token=feda0617-cd9d-4841-b6f0-e047da5d32ed-98187548"); HttpGet httpget = new HttpGet("/sdi-service/gcube/service/GeoNetwork/credentials/geonetwork-sdi.dev.d4science.org?gcube-token=feda0617-cd9d-4841-b6f0-e047da5d32ed-98187548");
httpget.setConfig(config); httpget.setConfig(config);
System.out.println("Executing request " + httpget.getRequestLine() + " to " + target + " via " + proxy); logger.warn("Executing request " + httpget.getRequestLine() + " to " + target + " via " + proxy);
CloseableHttpResponse response = httpclient.execute(target, httpget); CloseableHttpResponse response = httpclient.execute(target, httpget);
try { try {
System.out.println("----------------------------------------"); logger.warn("Status Code: "+response.getStatusLine().getStatusCode());
System.out.println(response.getStatusLine());
//System.out.println(EntityUtils.toString(response.getEntity()));
String json = EntityUtils.toString(response.getEntity()); String json = EntityUtils.toString(response.getEntity());
System.out.println(json); logger.warn("JSON response: \n" + json);
JSONObject jsonObject = JSONObject.fromObject(json); JSONObject jsonObject = JSONObject.fromObject(json);
AccessibleCredentialsEntity ac = (AccessibleCredentialsEntity) JSONObject.toBean(jsonObject, AccessibleCredentialsEntity.class); AccessibleCredentialsEntity ac = (AccessibleCredentialsEntity) JSONObject.toBean(jsonObject, AccessibleCredentialsEntity.class);
System.out.println(ac.getUsername());
logger.info("Credentials Entity Username"+ac.getUsername());
} finally { } finally {
response.close(); response.close();
} }