Add new method to get generic accesibleCredentials
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-access/gcube-geonetwork-connector@153237 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
645359a6f6
commit
25262352bd
|
@ -1,13 +1,22 @@
|
||||||
package org.gcube.data.access.connector.rest;
|
package org.gcube.data.access.connector.rest;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
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.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
import net.sf.json.JSONObject;
|
import net.sf.json.JSONObject;
|
||||||
|
|
||||||
public class GCubeRestClient {
|
public class GCubeRestClient {
|
||||||
|
|
||||||
|
private static String CONTEXT_MANAGER = "CONTEXT_MANAGER";
|
||||||
|
private static String CONTEXT_USER = "CONTEXT_USER";
|
||||||
|
|
||||||
private Logger logger = LoggerFactory.getLogger(this.getClass());
|
private Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
|
||||||
|
@ -28,4 +37,36 @@ public class GCubeRestClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AccessibleCredentialsEntity getGeneralAccessibleCredentials(String url, String host) {
|
||||||
|
|
||||||
|
logger.warn("REST call to URL: " + url);
|
||||||
|
RestTemplate restTemplate = new RestTemplate();
|
||||||
|
|
||||||
|
try {
|
||||||
|
ResponseEntity<SDIEntity> response = restTemplate.exchange(url, HttpMethod.GET, null, SDIEntity.class);
|
||||||
|
|
||||||
|
String baseEndpoint = response.getBody().getGeonetworkConfiguration().getBaseEndpoint();
|
||||||
|
AccessibleCredentialsEntity result = new AccessibleCredentialsEntity();
|
||||||
|
|
||||||
|
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();
|
||||||
|
Iterator<AccessibleCredentialsEntity> iter = credentials.iterator();
|
||||||
|
while (iter.hasNext()){
|
||||||
|
AccessibleCredentialsEntity entity = iter.next();
|
||||||
|
if (CONTEXT_MANAGER.equals(entity.getAccessType())){
|
||||||
|
result = entity;
|
||||||
|
}
|
||||||
|
if ((result.getAccessType() == null) && CONTEXT_USER.equals(entity.getAccessType())){
|
||||||
|
result = entity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("Error in getGeneralAccessibleCredentials() method: " + e.getMessage());
|
||||||
|
return new AccessibleCredentialsEntity();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue