Added i-frame to perform a ckan disconnet during browser closing
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/gcube-ckan-datacatalog@129773 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
30231815de
commit
5ab9489dc3
17
.classpath
17
.classpath
|
@ -33,22 +33,5 @@
|
|||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/home/costantino/Downloads/gwt-2.7.0/gwt-user.jar">
|
||||
<attributes>
|
||||
<attribute name="javadoc_location" value="file:/home/costantino/Downloads/gwt-2.7.0/doc/javadoc/"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/home/costantino/Downloads/gwt-2.7.0/gwt-codeserver.jar">
|
||||
<attributes>
|
||||
<attribute name="javadoc_location" value="file:/home/costantino/Downloads/gwt-2.7.0/doc/javadoc/"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/home/costantino/Downloads/gwt-2.7.0/gwt-dev.jar">
|
||||
<attributes>
|
||||
<attribute name="javadoc_location" value="file:/home/costantino/Downloads/gwt-2.7.0/doc/javadoc/"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/home/costantino/Downloads/gwt-2.7.0/validation-api-1.0.0.GA-sources.jar"/>
|
||||
<classpathentry kind="lib" path="/home/costantino/Downloads/gwt-2.7.0/validation-api-1.0.0.GA.jar" sourcepath="/home/costantino/Downloads/gwt-2.7.0/validation-api-1.0.0.GA-sources.jar"/>
|
||||
<classpathentry kind="output" path="target/gcube-ckan-datacatalog-1.0.0-SNAPSHOT/WEB-INF/classes"/>
|
||||
</classpath>
|
||||
|
|
|
@ -19,23 +19,14 @@ import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserGr
|
|||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserGroupsEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.CKanLeaveFrame;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.GCubeCkanDataCatalogPanel;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAccessPoint;
|
||||
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.CreateDatasetForm;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Modal;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.http.client.Request;
|
||||
import com.google.gwt.http.client.RequestBuilder;
|
||||
import com.google.gwt.http.client.RequestCallback;
|
||||
import com.google.gwt.http.client.RequestException;
|
||||
import com.google.gwt.http.client.Response;
|
||||
import com.google.gwt.user.client.DOM;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
|
||||
/**
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
|
@ -135,9 +126,9 @@ public class CkanEventHandlerManager {
|
|||
@Override
|
||||
public void onShowOrganizations(
|
||||
ShowUserOrganizationsEvent showUserDatasetsEvent) {
|
||||
|
||||
|
||||
panel.showOrganizations();
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
eventBus.addHandler(
|
||||
|
@ -166,10 +157,9 @@ public class CkanEventHandlerManager {
|
|||
|
||||
@Override
|
||||
public void onLogout(NotifyLogoutEvent editMetadataEvent) {
|
||||
|
||||
|
||||
CKanLeaveFrame frame = new CKanLeaveFrame(GCubeCkanDataCatalog.CKAN_LOGUT_SERVICE);
|
||||
DOM.appendChild(RootPanel.getBodyElement(), frame.getElement());
|
||||
|
||||
// CKanLeaveFrame frame = new CKanLeaveFrame(GCubeCkanDataCatalog.CKAN_LOGUT_SERVICE);
|
||||
// DOM.appendChild(RootPanel.getBodyElement(), frame.getElement());
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -184,7 +174,7 @@ public class CkanEventHandlerManager {
|
|||
}
|
||||
|
||||
private String getCkanRequest(String pathInfo, String query){
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(panel.getBaseURLCKANConnector());
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(panel.getBaseURLCKANConnector(),"");
|
||||
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
||||
pathInfo = CkanConnectorAccessPoint.checkNullString(pathInfo);
|
||||
query = CkanConnectorAccessPoint.checkNullString(query);
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client;
|
||||
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.NotifyLogoutEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.CKanLeaveFrame;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.GCubeCkanDataCatalogPanel;
|
||||
|
||||
|
@ -27,6 +26,7 @@ public class GCubeCkanDataCatalog implements EntryPoint {
|
|||
|
||||
private final String DIV_PORTLET_ID = "gCubeCkanDataCatalog";
|
||||
private CkanEventHandlerManager eventManager = new CkanEventHandlerManager();
|
||||
private CKanLeaveFrame frame;
|
||||
public static final String GET_PATH_PARAMETER = "path";
|
||||
public static final String GET_QUERY_PARAMETER = "query";
|
||||
|
||||
|
@ -40,13 +40,53 @@ public class GCubeCkanDataCatalog implements EntryPoint {
|
|||
@Override
|
||||
public void onWindowClosing(ClosingEvent closingEvent) {
|
||||
// eventManager.getEventBus().fireEvent(new NotifyLogoutEvent());
|
||||
GCubeCkanDataCatalogPanel.print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
|
||||
CKanLeaveFrame frame = new CKanLeaveFrame(GCubeCkanDataCatalog.CKAN_LOGUT_SERVICE);
|
||||
DOM.appendChild(RootPanel.getBodyElement(), frame.getElement());
|
||||
|
||||
|
||||
frame.setUrl(GCubeCkanDataCatalog.CKAN_LOGUT_SERVICE);
|
||||
/*RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, CKAN_LOGUT_SERVICE);
|
||||
|
||||
RequestCallback call = new RequestCallback() {
|
||||
|
||||
@Override
|
||||
public void onResponseReceived(Request request, Response response) {
|
||||
|
||||
// TODO Auto-generated method stub
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Request request, Throwable exception) {
|
||||
|
||||
// TODO Auto-generated method stub
|
||||
}
|
||||
};
|
||||
|
||||
builder.setCallback(call );
|
||||
try {
|
||||
builder.send();
|
||||
}
|
||||
catch (RequestException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}*/
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Window.addCloseHandler(new CloseHandler<Window>() {
|
||||
//
|
||||
// @Override
|
||||
// public void onClose(CloseEvent<Window> event) {
|
||||
//
|
||||
// GCubeCkanDataCatalogPanel.print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
|
||||
// CKanLeaveFrame frame = new CKanLeaveFrame(GCubeCkanDataCatalog.CKAN_LOGUT_SERVICE);
|
||||
// DOM.appendChild(RootPanel.getBodyElement(), frame.getElement());
|
||||
// }
|
||||
// });
|
||||
|
||||
GCubeCkanDataCatalogPanel panel = new GCubeCkanDataCatalogPanel(RootPanel.get(DIV_PORTLET_ID), eventManager.getEventBus());
|
||||
eventManager.setPanel(panel);
|
||||
|
||||
frame = new CKanLeaveFrame();
|
||||
DOM.appendChild(RootPanel.getBodyElement(), frame.getElement());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,26 +2,23 @@ package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view;
|
|||
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.user.client.ui.Frame;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
|
||||
/**
|
||||
* This iframe handles the onLeave page event in order to call the logout servlet
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
*/
|
||||
public class CKanLeaveFrame extends SimplePanel{
|
||||
public class CKanLeaveFrame extends Frame{
|
||||
|
||||
private Frame frame;
|
||||
|
||||
public CKanLeaveFrame(String url){
|
||||
public CKanLeaveFrame(){
|
||||
|
||||
try{
|
||||
|
||||
GCubeCkanDataCatalogPanel.print("Instancing new IFRAME with uri: "+ url);
|
||||
frame = new Frame(url);
|
||||
// GCubeCkanDataCatalogPanel.print("Instancing new IFRAME with uri: "+ url);
|
||||
getElement().setId("i-frame-logout");
|
||||
|
||||
// make it smaller
|
||||
frame.getElement().getStyle().setWidth(0, Unit.PX);
|
||||
frame.getElement().getStyle().setHeight(1, Unit.PX);
|
||||
getElement().getStyle().setWidth(1, Unit.PX);
|
||||
getElement().getStyle().setHeight(1, Unit.PX);
|
||||
|
||||
}catch(Exception e){
|
||||
GCubeCkanDataCatalogPanel.print("exception " + e);
|
||||
|
|
|
@ -43,7 +43,7 @@ public class CkanOrganizationsPanel extends VerticalPanel{
|
|||
hPanel.add(vPanel);
|
||||
add(hPanel);
|
||||
|
||||
this.organizations = result;
|
||||
this.organizations = result;
|
||||
|
||||
//generate the list of organizations
|
||||
if(result == null || result.isEmpty()){
|
||||
|
@ -59,7 +59,7 @@ public class CkanOrganizationsPanel extends VerticalPanel{
|
|||
Iterator<Entry<String, String>> iterator = organizations.entrySet().iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
final Map.Entry<String, String> entry = (Map.Entry<String, String>) iterator
|
||||
final Map.Entry<String, String> entry = iterator
|
||||
.next();
|
||||
|
||||
Button b = new Button();
|
||||
|
@ -94,7 +94,7 @@ public class CkanOrganizationsPanel extends VerticalPanel{
|
|||
* @return
|
||||
*/
|
||||
private String getCkanRequest(String pathInfo, String query){
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(father.getBaseURLCKANConnector());
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(father.getBaseURLCKANConnector(), "");
|
||||
ckan.addGubeToken(father.getGcubeTokenValueToCKANConnector());
|
||||
pathInfo = CkanConnectorAccessPoint.checkNullString(pathInfo);
|
||||
query = CkanConnectorAccessPoint.checkNullString(query);
|
||||
|
|
|
@ -15,8 +15,6 @@ import com.google.gwt.event.logical.shared.ResizeEvent;
|
|||
import com.google.gwt.event.logical.shared.ResizeHandler;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.Window.ClosingEvent;
|
||||
import com.google.gwt.user.client.Window.ClosingHandler;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Frame;
|
||||
import com.google.gwt.user.client.ui.Image;
|
||||
|
@ -258,7 +256,7 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate{
|
|||
* @return the base urlckan connector
|
||||
*/
|
||||
public String getBaseURLCKANConnector() {
|
||||
return ckanAccessPoint.getBaseUrl();
|
||||
return ckanAccessPoint.getBaseUrlWithContext();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -4,30 +4,19 @@
|
|||
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.server;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.http.Header;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.gcube.application.framework.core.session.ASLSession;
|
||||
import org.gcube.application.framework.core.session.SessionManager;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAccessPoint;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import eu.trentorise.opendata.jackan.internal.org.apache.http.HttpStatus;
|
||||
import eu.trentorise.opendata.traceprov.internal.org.apache.commons.io.IOUtils;
|
||||
|
||||
|
||||
/**
|
||||
* The Class CkanLogout.
|
||||
|
@ -60,12 +49,14 @@ public class CkanLogout extends HttpServlet {
|
|||
String ckanConnectorLogut = getServletContext().getInitParameter(GcubeCkanDataCatalogServiceImpl.CKANCONNECTORLOGOUT);
|
||||
logger.debug(GcubeCkanDataCatalogServiceImpl.CKANCONNECTORLOGOUT + " is: "+ckanConnectorLogut);
|
||||
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(ckanAP.getBaseUrl());
|
||||
ckan.addPathInfo(ckanConnectorLogut);
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(ckanAP.getBaseUrl(), ckanConnectorLogut);
|
||||
ckan.addGubeToken(ckanAP.getGcubeTokenValue());
|
||||
|
||||
String deleteURI = ckan.buildURI();
|
||||
// resp.sendRedirect(deleteURI);
|
||||
logger.debug(GcubeCkanDataCatalogServiceImpl.CKANCONNECTORLOGOUT + " calling: "+deleteURI);
|
||||
resp.sendRedirect(deleteURI);
|
||||
|
||||
/*logger.debug(GcubeCkanDataCatalogServiceImpl.CKANCONNECTORLOGOUT + " is: "+ckanConnectorLogut);
|
||||
CloseableHttpResponse httpResponse = null;
|
||||
try {
|
||||
|
||||
|
@ -125,7 +116,7 @@ public class CkanLogout extends HttpServlet {
|
|||
}finally {
|
||||
if(httpResponse!=null)
|
||||
httpResponse.close();
|
||||
}
|
||||
}*/
|
||||
|
||||
/*try {
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem
|
|||
|
||||
if(outsidePortal()){
|
||||
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(getCkanUtilsObj().getCatalogueUrl());
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(getCkanUtilsObj().getCatalogueUrl(),"");
|
||||
return ckan;
|
||||
|
||||
}
|
||||
|
@ -151,7 +151,7 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem
|
|||
logger.debug(CKANCONNECTORCONTEXT + " is: "+ckanContext);
|
||||
ckanContext= ckanContext!=null?ckanContext:"";
|
||||
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(ckanConnectorBaseUrl+ckanContext);
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(ckanConnectorBaseUrl, ckanContext);
|
||||
pathInfoParameter = CkanConnectorAccessPoint.checkURLPathSeparator(pathInfoParameter, true, false);
|
||||
logger.debug("External Path Info parameter: "+pathInfoParameter);
|
||||
|
||||
|
@ -375,8 +375,7 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem
|
|||
String ckanConnectorLogut = getServletContext().getInitParameter(CKANCONNECTORLOGOUT);
|
||||
logger.debug(CKANCONNECTORLOGOUT + " is: "+ckanConnectorLogut);
|
||||
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(ckanAP.getBaseUrl());
|
||||
ckan.addPathInfo(ckanConnectorLogut);
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(ckanAP.getBaseUrl(), ckanConnectorLogut);
|
||||
ckan.addGubeToken(ckanAP.getGcubeTokenValue());
|
||||
return ckan.buildURI();
|
||||
}
|
||||
|
@ -397,7 +396,7 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem
|
|||
String ckanConnectorLogut = getServletContext().getInitParameter(CKANCONNECTORLOGOUT);
|
||||
logger.debug(CKANCONNECTORLOGOUT + " is: "+ckanConnectorLogut);
|
||||
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(ckanAP.getBaseUrl());
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(ckanAP.getBaseUrl(), ckanConnectorLogut);
|
||||
ckan.addPathInfo(ckanConnectorLogut);
|
||||
ckan.addGubeToken(ckanAP.getGcubeTokenValue());
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.server;
|
|||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.gcube.application.framework.core.session.ASLSession;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAccessPoint;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
|
@ -31,6 +31,7 @@ public class CkanConnectorAccessPoint implements Serializable{
|
|||
private String queryStringParameters;
|
||||
private String gcubeTokenValue;
|
||||
private List<String> listOfVRes;
|
||||
private String serverviceContext;
|
||||
|
||||
/**
|
||||
* Instantiates a new ckan connector access point.
|
||||
|
@ -38,13 +39,16 @@ public class CkanConnectorAccessPoint implements Serializable{
|
|||
public CkanConnectorAccessPoint() {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new ckan connector access point.
|
||||
*
|
||||
* @param baseUrl the base url
|
||||
* @param serverContext the server context
|
||||
*/
|
||||
public CkanConnectorAccessPoint(String baseUrl){
|
||||
public CkanConnectorAccessPoint(String baseUrl, String servericeContext){
|
||||
this.baseUrl = baseUrl;
|
||||
this.serverviceContext = servericeContext;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -126,17 +130,17 @@ public class CkanConnectorAccessPoint implements Serializable{
|
|||
String query = "";
|
||||
path = checkURLPathSeparator(pathInfoParameter, true, false);
|
||||
query = checkNullString(queryStringParameters);
|
||||
return baseUrl+path+"?"+query;
|
||||
return getBaseUrlWithContext()+path+"?"+query;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the base url.
|
||||
* Gets the base url with context.
|
||||
*
|
||||
* @return the baseUrl
|
||||
* @return the base url with context
|
||||
*/
|
||||
public String getBaseUrl() {
|
||||
public String getBaseUrlWithContext() {
|
||||
|
||||
return baseUrl;
|
||||
return baseUrl+serverviceContext;
|
||||
}
|
||||
|
||||
|
||||
|
@ -205,6 +209,16 @@ public class CkanConnectorAccessPoint implements Serializable{
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the base url.
|
||||
*
|
||||
* @return the baseUrl
|
||||
*/
|
||||
public String getBaseUrl() {
|
||||
|
||||
return baseUrl;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check null string.
|
||||
|
@ -237,6 +251,8 @@ public class CkanConnectorAccessPoint implements Serializable{
|
|||
builder.append(gcubeTokenValue);
|
||||
builder.append(", listOfVRes=");
|
||||
builder.append(listOfVRes);
|
||||
builder.append(", context=");
|
||||
builder.append(serverviceContext);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue