You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.6 KiB
Java
97 lines
2.6 KiB
Java
package org.gcube.accounting.insert.storage.utils;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.MalformedURLException;
|
|
import java.net.URL;
|
|
import java.util.List;
|
|
|
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import com.google.gson.Gson;
|
|
|
|
/**
|
|
* Retrieves the list user form the base url of the social-networking service in
|
|
* the scope provided
|
|
*
|
|
* @author Alessandro Pieve at ISTI-CNR (alessandro.pieve@isti.cnr.it)
|
|
*/
|
|
public class DiscoveryListUser {
|
|
|
|
private static Logger log = LoggerFactory.getLogger(DiscoveryListUser.class);
|
|
|
|
private List<String> listUser = null;
|
|
|
|
public DiscoveryListUser(String context, String urlService) {
|
|
|
|
try {
|
|
String token = SecurityTokenProvider.instance.get();
|
|
DiscoveryServiceListUser discoveryList = new DiscoveryServiceListUser(context);
|
|
if (urlService == null) {
|
|
urlService = discoveryList.getBasePath() + "=" + token;
|
|
}
|
|
log.debug("service DiscoveryServiceListUser:" + urlService);
|
|
log.debug("scope:{} ,tokend:{}", context, token);
|
|
String data = getJSON(urlService);
|
|
log.debug("data read:{}", data);
|
|
ListUser msg = new Gson().fromJson(data, ListUser.class);
|
|
// TODO for debug limit a list user:
|
|
listUser = msg.getResult();
|
|
} catch (Exception ex) {
|
|
log.error("DiscoveryListUserException:{}", ex);
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
public List<String> getListUser() {
|
|
return listUser;
|
|
}
|
|
|
|
public String getJSON(String url) {
|
|
HttpURLConnection c = null;
|
|
try {
|
|
URL u = new URL(url);
|
|
c = (HttpURLConnection) u.openConnection();
|
|
c.setRequestMethod("GET");
|
|
c.setRequestProperty("Content-length", "0");
|
|
HttpURLConnection.setFollowRedirects(true);
|
|
c.setUseCaches(false);
|
|
c.setAllowUserInteraction(false);
|
|
c.connect();
|
|
int status = c.getResponseCode();
|
|
log.debug("status:{}", status);
|
|
switch (status) {
|
|
case 200:
|
|
case 201:
|
|
BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
|
|
StringBuilder sb = new StringBuilder();
|
|
String line;
|
|
while ((line = br.readLine()) != null) {
|
|
sb.append(line + "\n");
|
|
}
|
|
br.close();
|
|
return sb.toString();
|
|
}
|
|
|
|
} catch (MalformedURLException ex) {
|
|
log.error("MalformedURLException:{}", ex);
|
|
|
|
} catch (IOException ex) {
|
|
log.error("IOException:{}", ex);
|
|
} finally {
|
|
if (c != null) {
|
|
try {
|
|
c.disconnect();
|
|
} catch (Exception ex) {
|
|
log.error("Exception:{}", ex);
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|