diff --git a/.classpath b/.classpath index dfdb4ec..2ca6eea 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + @@ -25,5 +25,5 @@ - + diff --git a/pom.xml b/pom.xml index 5a09e53..24c8ff6 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.portlets.widgets github-connector - 1.1.0-SNAPSHOT + 1.2.0-SNAPSHOT jar github-connector @@ -32,7 +32,7 @@ developer - + ${project.build.directory}/${project.build.finalName} @@ -152,13 +152,9 @@ - org.gcube.portal - custom-portal-handler - - - - org.gcube.applicationsupportlayer - aslcore + org.gcube.common.portal + portal-manager + provided @@ -188,13 +184,7 @@ compile - - - org.gcube.portlets.widgets - session-checker - [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) - - + org.gcube.contentmanagement diff --git a/src/main/java/org/gcube/portlets/widgets/githubconnector/client/GitHubConnectorController.java b/src/main/java/org/gcube/portlets/widgets/githubconnector/client/GitHubConnectorController.java index a7ad5b9..5044b93 100644 --- a/src/main/java/org/gcube/portlets/widgets/githubconnector/client/GitHubConnectorController.java +++ b/src/main/java/org/gcube/portlets/widgets/githubconnector/client/GitHubConnectorController.java @@ -4,7 +4,7 @@ import org.gcube.portlets.widgets.githubconnector.client.rpc.GitHubConnectorServ import org.gcube.portlets.widgets.githubconnector.client.util.GWTMessages; import org.gcube.portlets.widgets.githubconnector.shared.exception.ExpiredSessionServiceException; import org.gcube.portlets.widgets.githubconnector.shared.session.UserInfo; -import org.gcube.portlets.widgets.sessionchecker.client.CheckSession; + import com.google.gwt.core.shared.GWT; import com.google.gwt.user.client.Timer; @@ -37,11 +37,11 @@ public class GitHubConnectorController { private void checkSession() { // if you do not need to something when the session expire - CheckSession.getInstance().startPolling(); + //CheckSession.getInstance().startPolling(); } private void sessionExpiredShow() { - CheckSession.showLogoutDialog(); + //CheckSession.showLogoutDialog(); } private void sessionExpiredShowDelayed() { diff --git a/src/main/java/org/gcube/portlets/widgets/githubconnector/client/GitHubConnectorWizard.java b/src/main/java/org/gcube/portlets/widgets/githubconnector/client/GitHubConnectorWizard.java index 7ef33fc..d58488e 100644 --- a/src/main/java/org/gcube/portlets/widgets/githubconnector/client/GitHubConnectorWizard.java +++ b/src/main/java/org/gcube/portlets/widgets/githubconnector/client/GitHubConnectorWizard.java @@ -2,7 +2,6 @@ package org.gcube.portlets.widgets.githubconnector.client; import org.gcube.portlets.widgets.githubconnector.client.wizard.WizardWindow; import org.gcube.portlets.widgets.githubconnector.shared.git.GitHubCloneSession; -import org.gcube.portlets.widgets.sessionchecker.client.CheckSession; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Timer; @@ -38,11 +37,11 @@ public class GitHubConnectorWizard extends WizardWindow { private void checkSession() { // if you do not need to something when the session expire - CheckSession.getInstance().startPolling(); + //CheckSession.getInstance().startPolling(); } private void sessionExpiredShow() { - CheckSession.showLogoutDialog(); + //CheckSession.showLogoutDialog(); } public void sessionExpiredShowDelayed() { diff --git a/src/main/java/org/gcube/portlets/widgets/githubconnector/portlet/GitHubConnectorPortlet.java b/src/main/java/org/gcube/portlets/widgets/githubconnector/portlet/GitHubConnectorPortlet.java index 0536216..4a53aa2 100644 --- a/src/main/java/org/gcube/portlets/widgets/githubconnector/portlet/GitHubConnectorPortlet.java +++ b/src/main/java/org/gcube/portlets/widgets/githubconnector/portlet/GitHubConnectorPortlet.java @@ -11,7 +11,6 @@ import javax.portlet.PortletRequestDispatcher; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; -import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,8 +45,8 @@ public class GitHubConnectorPortlet extends GenericPortlet { logger.trace("Loading from JSP: "+VIEW_JSP); - logger.trace("setting context using ScopeHelper"); - ScopeHelper.setContext(request); + //logger.trace("setting context using ScopeHelper"); + //ScopeHelper.setContext(request); logger.trace("passing to the render"); PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(VIEW_JSP); diff --git a/src/main/java/org/gcube/portlets/widgets/githubconnector/server/GitHubConnectorServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/GitHubConnectorServiceImpl.java index db9295a..29b54d7 100644 --- a/src/main/java/org/gcube/portlets/widgets/githubconnector/server/GitHubConnectorServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/GitHubConnectorServiceImpl.java @@ -3,11 +3,10 @@ package org.gcube.portlets.widgets.githubconnector.server; import java.util.ArrayList; import javax.servlet.ServletException; -import javax.servlet.http.HttpSession; -import org.gcube.application.framework.core.session.ASLSession; import org.gcube.portlets.widgets.githubconnector.client.rpc.GitHubConnectorService; import org.gcube.portlets.widgets.githubconnector.server.git.GitConnectorService; +import org.gcube.portlets.widgets.githubconnector.server.util.ServiceCredentials; import org.gcube.portlets.widgets.githubconnector.shared.exception.ServiceException; import org.gcube.portlets.widgets.githubconnector.shared.git.GitHubCloneSession; import org.gcube.portlets.widgets.githubconnector.shared.git.data.GitHubRepository; @@ -46,15 +45,14 @@ public class GitHubConnectorServiceImpl extends RemoteServiceServlet implements @Override public UserInfo hello() throws ServiceException { try { - HttpSession session = this.getThreadLocalRequest().getSession(); - ASLSession aslSession = SessionUtil.getASLSession(session); - SessionUtil.getToken(aslSession); + + ServiceCredentials serviceCredentials = SessionUtil.getServiceCredentials(this.getThreadLocalRequest()); logger.debug("hello()"); - UserInfo userInfo = new UserInfo(aslSession.getUsername(), - aslSession.getGroupId(), aslSession.getGroupName(), - aslSession.getScope(), aslSession.getScopeName(), - aslSession.getUserEmailAddress(), - aslSession.getUserFullName()); + UserInfo userInfo = new UserInfo(serviceCredentials.getUserName(), + serviceCredentials.getGoupId(), serviceCredentials.getGroupName(), + serviceCredentials.getScope(), + serviceCredentials.getEmail(), + serviceCredentials.getFullName()); logger.debug("UserInfo: " + userInfo); return userInfo; } catch (ServiceException e) { @@ -72,12 +70,10 @@ public class GitHubConnectorServiceImpl extends RemoteServiceServlet implements public ArrayList getRepositories(String repositoryOwner, GitHubCredential gitHubCredential) throws ServiceException { try { - HttpSession session = this.getThreadLocalRequest().getSession(); - ASLSession aslSession = SessionUtil.getASLSession(session); - SessionUtil.getToken(aslSession); + ServiceCredentials serviceCredentials = SessionUtil.getServiceCredentials(this.getThreadLocalRequest()); logger.debug("getRepository(): " + gitHubCredential); GitConnectorService gitConnectorService = new GitConnectorService( - aslSession.getUsername(), gitHubCredential); + serviceCredentials.getUserName(), gitHubCredential); return gitConnectorService.getRepositories(repositoryOwner); } catch (ServiceException e) { e.printStackTrace(); @@ -93,12 +89,10 @@ public class GitHubConnectorServiceImpl extends RemoteServiceServlet implements public void cloneRepository(GitHubCloneSession gitHubCloneSession) throws ServiceException { try { - HttpSession session = this.getThreadLocalRequest().getSession(); - ASLSession aslSession = SessionUtil.getASLSession(session); - SessionUtil.getToken(aslSession); + ServiceCredentials serviceCredentials = SessionUtil.getServiceCredentials(this.getThreadLocalRequest()); logger.debug("cloneRepository(): " + gitHubCloneSession); GitConnectorService gitConnectorService = new GitConnectorService( - aslSession.getUsername(), + serviceCredentials.getUserName(), gitHubCloneSession.getGitHubCredential()); gitConnectorService.cloneRepository(gitHubCloneSession.getDestinationFolderId(), gitHubCloneSession.getRepositoryOwner(), gitHubCloneSession.getRepositoryName()); diff --git a/src/main/java/org/gcube/portlets/widgets/githubconnector/server/SessionUtil.java b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/SessionUtil.java index 1aab8c3..4761bf1 100644 --- a/src/main/java/org/gcube/portlets/widgets/githubconnector/server/SessionUtil.java +++ b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/SessionUtil.java @@ -3,14 +3,12 @@ */ package org.gcube.portlets.widgets.githubconnector.server; -import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; -import org.gcube.application.framework.core.session.ASLSession; -import org.gcube.application.framework.core.session.SessionManager; -import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper; +import org.gcube.common.portal.PortalContext; +import org.gcube.portlets.widgets.githubconnector.server.util.ServiceCredentials; import org.gcube.portlets.widgets.githubconnector.shared.Constants; -import org.gcube.portlets.widgets.githubconnector.shared.exception.ExpiredSessionServiceException; import org.gcube.portlets.widgets.githubconnector.shared.exception.ServiceException; /** @@ -24,50 +22,49 @@ public class SessionUtil { private static final Logger logger = Logger.getLogger(SessionUtil.class); - public static ASLSession getASLSession(HttpSession httpSession) - throws ServiceException { - String username = (String) httpSession - .getAttribute(ScopeHelper.USERNAME_ATTRIBUTE); - ASLSession aslSession; - if (username == null) { - if (Constants.DEBUG_MODE) { - logger.info("no user found in session, use test user"); - username = Constants.DEFAULT_USER; - String scope = Constants.DEFAULT_SCOPE; - - httpSession.setAttribute(ScopeHelper.USERNAME_ATTRIBUTE, - username); - aslSession = SessionManager.getInstance().getASLSession( - httpSession.getId(), username); - aslSession.setScope(scope); - } else { - logger.info("no user found in session!"); - throw new ExpiredSessionServiceException("Session Expired!"); - - } - } else { - aslSession = SessionManager.getInstance().getASLSession( - httpSession.getId(), username); - - } - - logger.info("SessionUtil: aslSession " + aslSession.getUsername() + " " - + aslSession.getScope()); - - return aslSession; - } - - public static String getToken(ASLSession aslSession) - throws ServiceException { + public static ServiceCredentials getServiceCredentials( + HttpServletRequest httpServletRequest) throws ServiceException { + ServiceCredentials sCredentials = null; + String userName = null; + String scope = null; String token = null; - if (Constants.DEBUG_MODE) { - token = Constants.DEFAULT_TOKEN; - } else { - token = aslSession.getSecurityToken(); - } - logger.info("received token: " + token); - return token; + if (Constants.DEBUG_MODE) { + logger.info("No credential found in session, use test user!"); + userName = Constants.DEFAULT_USER; + scope = Constants.DEFAULT_SCOPE; + token = Constants.DEFAULT_TOKEN; + + sCredentials = new ServiceCredentials(userName, scope, token); + + } else { + logger.info("Retrieving credential in session!"); + PortalContext pContext = PortalContext.getConfiguration(); + userName = pContext.getCurrentUser(httpServletRequest) + .getUsername(); + scope = pContext.getCurrentScope(httpServletRequest); + token = pContext.getCurrentUserToken(httpServletRequest); + String name = pContext.getCurrentUser(httpServletRequest) + .getFirstName(); + String lastName = pContext.getCurrentUser(httpServletRequest) + .getLastName(); + String fullName = pContext.getCurrentUser(httpServletRequest).getFullname(); + + String email = pContext.getCurrentUser(httpServletRequest) + .getEmail(); + String groupId = String.valueOf(pContext + .getCurrentGroupId(httpServletRequest)); + String groupName = pContext.getCurrentGroupName(httpServletRequest); + + sCredentials = new ServiceCredentials(userName, fullName, name, lastName, + email, scope, groupId, groupName, token); + + } + + logger.info("ServiceCredential: " + sCredentials); + + return sCredentials; } + } diff --git a/src/main/java/org/gcube/portlets/widgets/githubconnector/server/util/ServiceCredentials.java b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/util/ServiceCredentials.java new file mode 100644 index 0000000..50c5287 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/util/ServiceCredentials.java @@ -0,0 +1,131 @@ +package org.gcube.portlets.widgets.githubconnector.server.util; + +import java.io.Serializable; + +/** + * + * @author Giancarlo Panichi email: g.panichi@isti.cnr.it + * + */ +public class ServiceCredentials implements Serializable { + + private static final long serialVersionUID = 3560918948310315680L; + private String userName; + private String fullName; + private String name; + private String lastName; + private String email; + private String scope; + private String goupId; + private String groupName; + private String token; + + public ServiceCredentials() { + super(); + } + + public ServiceCredentials(String userName, String scope, String token) { + super(); + this.userName = userName; + this.scope = scope; + this.token = token; + } + + public ServiceCredentials(String userName, String fullName, String name, + String lastName, String email, String scope, String goupId, + String groupName, String token) { + super(); + this.userName = userName; + this.fullName = fullName; + this.name = name; + this.lastName = lastName; + this.email = email; + this.scope = scope; + this.goupId = goupId; + this.groupName = groupName; + this.token = token; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getScope() { + return scope; + } + + public void setScope(String scope) { + this.scope = scope; + } + + public String getGoupId() { + return goupId; + } + + public void setGoupId(String goupId) { + this.goupId = goupId; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + @Override + public String toString() { + return "ServiceCredentials [userName=" + userName + ", fullName=" + + fullName + ", name=" + name + ", lastName=" + lastName + + ", email=" + email + ", scope=" + scope + ", goupId=" + + goupId + ", groupName=" + groupName + ", token=" + token + + "]"; + } + +} diff --git a/src/main/java/org/gcube/portlets/widgets/githubconnector/shared/session/UserInfo.java b/src/main/java/org/gcube/portlets/widgets/githubconnector/shared/session/UserInfo.java index d8edb71..4afadf4 100644 --- a/src/main/java/org/gcube/portlets/widgets/githubconnector/shared/session/UserInfo.java +++ b/src/main/java/org/gcube/portlets/widgets/githubconnector/shared/session/UserInfo.java @@ -4,8 +4,8 @@ import java.io.Serializable; /** * - * @author giancarlo - * email: g.panichi@isti.cnr.it + * @author giancarlo email: g.panichi@isti.cnr.it * */ public class UserInfo implements Serializable { @@ -13,10 +13,9 @@ public class UserInfo implements Serializable { private static final long serialVersionUID = -2826549639677017234L; private String username; - private long groupId; + private String groupId; private String groupName; private String scope; - private String scopeName; private String userEmailAddress; private String userFullName; @@ -34,15 +33,13 @@ public class UserInfo implements Serializable { * @param userEmailAddress * @param userFullName */ - public UserInfo(String username, long groupId, String groupName, - String scope, String scopeName, String userEmailAddress, - String userFullName) { + public UserInfo(String username, String groupId, String groupName, + String scope, String userEmailAddress, String userFullName) { super(); this.username = username; this.groupId = groupId; this.groupName = groupName; this.scope = scope; - this.scopeName = scopeName; this.userEmailAddress = userEmailAddress; this.userFullName = userFullName; } @@ -55,11 +52,11 @@ public class UserInfo implements Serializable { this.username = username; } - public long getGroupId() { + public String getGroupId() { return groupId; } - public void setGroupId(long groupId) { + public void setGroupId(String groupId) { this.groupId = groupId; } @@ -79,14 +76,6 @@ public class UserInfo implements Serializable { this.scope = scope; } - public String getScopeName() { - return scopeName; - } - - public void setScopeName(String scopeName) { - this.scopeName = scopeName; - } - public String getUserEmailAddress() { return userEmailAddress; } @@ -107,8 +96,8 @@ public class UserInfo implements Serializable { public String toString() { return "UserInfo [username=" + username + ", groupId=" + groupId + ", groupName=" + groupName + ", scope=" + scope - + ", scopeName=" + scopeName + ", userEmailAddress=" - + userEmailAddress + ", userFullName=" + userFullName + "]"; + + ", userEmailAddress=" + userEmailAddress + ", userFullName=" + + userFullName + "]"; } } diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index e73d7ae..0c6de69 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -11,15 +11,6 @@ jUnitHostImpl com.google.gwt.junit.server.JUnitHostImpl - - - checkServlet - org.gcube.portlets.widgets.sessionchecker.server.SessionCheckerServiceImpl - - - scopeService - org.gcube.portlets.user.gcubewidgets.server.ScopeServiceImpl - GitHubConnectorServlet /githubman/githubconnectorservice @@ -28,15 +19,6 @@ jUnitHostImpl /githubman/junithost/* - - - checkServlet - /githubman/checksession - - - scopeService - /githubman/scopeService - GitHubConnector.html