From 90711b50bba33b1bc8046a6215ed5d34bb0d5d70 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Mon, 11 Mar 2019 19:15:04 +0000 Subject: [PATCH] ref 16252: NLP Hub portlet not working when token is passed https://support.d4science.org/issues/16252 Fixed DataMiner Discover by token git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-analysis/nlphub@178539 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../nlphub/DiscoverDataMinerService.java | 76 +------------------ ...rDataMinerService.java => DMDiscover.java} | 4 +- .../nlphub/nlp/NLpLanguageRecognizer.java | 4 +- .../nlphub/nlp/NlpAsyncNerRunner.java | 4 +- src/main/webapp/index.jsp | 4 +- 5 files changed, 11 insertions(+), 81 deletions(-) rename src/main/java/org/gcube/data/analysis/nlphub/is/{DiscoverDataMinerService.java => DMDiscover.java} (94%) diff --git a/src/main/java/org/gcube/data/analysis/nlphub/DiscoverDataMinerService.java b/src/main/java/org/gcube/data/analysis/nlphub/DiscoverDataMinerService.java index 6295ddc..7a394b6 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/DiscoverDataMinerService.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/DiscoverDataMinerService.java @@ -1,23 +1,15 @@ package org.gcube.data.analysis.nlphub; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStreamReader; import java.io.PrintWriter; -import java.net.HttpURLConnection; -import java.net.URL; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.xml.stream.FactoryConfigurationError; -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; +import org.gcube.data.analysis.nlphub.is.DMDiscover; import org.gcube.data.analysis.nlphub.session.SessionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -67,77 +59,15 @@ public class DiscoverDataMinerService extends HttpServlet { private void discoverDataMinerService(HttpServletRequest request, HttpServletResponse response, String token) throws ServletException, IOException { - HttpURLConnection connection = null; String dataMinerServiceUrl = ""; response.setContentType("text/plain;charset=UTF-8"); try (PrintWriter writer = response.getWriter()) { - - try { - String urlInformationSystem = "http://registry.d4science.org/icproxy/gcube/service/ServiceEndpoint/DataAnalysis/DataMiner?"; - - logger.debug("Request url: " + urlInformationSystem); - urlInformationSystem += "gcube-token=" + token; - URL url = new URL(urlInformationSystem); - - connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("GET"); - connection.setDoInput(true); - connection.setDoOutput(false); - connection.setUseCaches(false); - - try (BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { - dataMinerServiceUrl = readProfileInfo(r); - } - - } catch (Exception e) { - logger.error("Discover DataMiner Service error: " + e.getLocalizedMessage(), e); - } finally { - try { - if (connection != null) - connection.disconnect(); - } catch (Exception e) { - logger.error("Discover DataMiner Service error: " + e.getLocalizedMessage(), e); - } - } - + DMDiscover dmDiscover = new DMDiscover(); + dataMinerServiceUrl = dmDiscover.retrieveServiceUrl(token); writer.println(dataMinerServiceUrl); - } catch (Throwable e) { logger.error("Error discovering DataMiner Service Url: " + e.getLocalizedMessage(), e); } } - - private String readProfileInfo(BufferedReader r) throws FactoryConfigurationError, XMLStreamException { - String dataMinerServiceUrl = null; - XMLInputFactory xmlInFact = XMLInputFactory.newInstance(); - XMLStreamReader reader = xmlInFact.createXMLStreamReader(r); - while (reader.hasNext()) { - int eventType = reader.next(); - if (eventType == XMLStreamConstants.START_ELEMENT) { - logger.debug("Read Element: " + reader.getLocalName()); - if (reader.getLocalName().compareToIgnoreCase("EndPoint") == 0) { - logger.debug("Attribute count:" + reader.getAttributeCount()); - for (int i = 0; i < reader.getAttributeCount(); i++) { - logger.debug("Attribute Name: " + reader.getAttributeName(i)); - logger.debug("Attribute Value: " + reader.getAttributeValue(i)); - if (reader.getAttributeName(i).toString().compareToIgnoreCase("EntryName") == 0 - && reader.getAttributeValue(i).toString() - .compareToIgnoreCase("dataminer-prototypes.d4science.org") == 0) { - dataMinerServiceUrl = reader.getElementText(); - dataMinerServiceUrl=dataMinerServiceUrl.trim(); - dataMinerServiceUrl = dataMinerServiceUrl.replace("\\n", "").replace("\\r", ""); - logger.debug("url lenght: "+dataMinerServiceUrl.length()); - logger.debug("DataMiner service url retrieved: " + dataMinerServiceUrl); - return dataMinerServiceUrl; - } - - } - - } - } - } - return dataMinerServiceUrl; - } - } diff --git a/src/main/java/org/gcube/data/analysis/nlphub/is/DiscoverDataMinerService.java b/src/main/java/org/gcube/data/analysis/nlphub/is/DMDiscover.java similarity index 94% rename from src/main/java/org/gcube/data/analysis/nlphub/is/DiscoverDataMinerService.java rename to src/main/java/org/gcube/data/analysis/nlphub/is/DMDiscover.java index c3a35a9..ee1a70c 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/is/DiscoverDataMinerService.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/is/DMDiscover.java @@ -9,9 +9,9 @@ import org.slf4j.LoggerFactory; import static org.gcube.common.authorization.client.Constants.authorizationService; -public class DiscoverDataMinerService { +public class DMDiscover { - private static Logger logger = LoggerFactory.getLogger(DiscoverDataMinerService.class); + private static Logger logger = LoggerFactory.getLogger(DMDiscover.class); public String retrieveServiceUrl(String token) throws Exception { logger.debug("Retrieve DataMiner Service by token: " + token); diff --git a/src/main/java/org/gcube/data/analysis/nlphub/nlp/NLpLanguageRecognizer.java b/src/main/java/org/gcube/data/analysis/nlphub/nlp/NLpLanguageRecognizer.java index 9599268..a745bfa 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/nlp/NLpLanguageRecognizer.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/nlp/NLpLanguageRecognizer.java @@ -9,7 +9,7 @@ import java.net.URLEncoder; import javax.servlet.http.HttpServletResponse; import javax.xml.parsers.DocumentBuilderFactory; -import org.gcube.data.analysis.nlphub.is.DiscoverDataMinerService; +import org.gcube.data.analysis.nlphub.is.DMDiscover; import org.gcube.data.analysis.nlphub.legacy.JsonManager; import org.gcube.data.analysis.nlphub.legacy.NlpHubException; import org.gcube.data.analysis.nlphub.shared.Constants; @@ -49,7 +49,7 @@ public class NLpLanguageRecognizer { HttpServletResponse response) throws NlpHubException { try { try { - DiscoverDataMinerService discoverDataMinerService=new DiscoverDataMinerService(); + DMDiscover discoverDataMinerService=new DMDiscover(); dataMiner=discoverDataMinerService.retrieveServiceUrl(token); } catch (Exception e) { logger.error("Error retrieving DataMiner service:" + e.getMessage(),e); diff --git a/src/main/java/org/gcube/data/analysis/nlphub/nlp/NlpAsyncNerRunner.java b/src/main/java/org/gcube/data/analysis/nlphub/nlp/NlpAsyncNerRunner.java index ec784d4..32c9a55 100644 --- a/src/main/java/org/gcube/data/analysis/nlphub/nlp/NlpAsyncNerRunner.java +++ b/src/main/java/org/gcube/data/analysis/nlphub/nlp/NlpAsyncNerRunner.java @@ -11,7 +11,7 @@ import java.util.ArrayList; import javax.xml.parsers.DocumentBuilderFactory; -import org.gcube.data.analysis.nlphub.is.DiscoverDataMinerService; +import org.gcube.data.analysis.nlphub.is.DMDiscover; import org.gcube.data.analysis.nlphub.legacy.AsyncHttpRequest; import org.gcube.data.analysis.nlphub.shared.Constants; import org.slf4j.Logger; @@ -39,7 +39,7 @@ public class NlpAsyncNerRunner extends AsyncHttpRequest { try { - DiscoverDataMinerService discoverDataMinerService=new DiscoverDataMinerService(); + DMDiscover discoverDataMinerService=new DMDiscover(); dataMiner=discoverDataMinerService.retrieveServiceUrl(token); } catch (Exception e) { logger.error("Error retrieving DataMiner service:" + e.getMessage(),e); diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 776125c..5e1d7ce 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -33,8 +33,8 @@ var gCubeToken = '<%=requestToken%>'; <% } %> - var scheme = '<%= request.getScheme() %>'; - console.log('Scheme: '+scheme); + var scheme = '<%=request.getHeader("x-forwarded-proto")%>'; + console.log('Protocol: '+scheme); var contextPath = '<%= request.getContextPath() %>';