From 1a7c9fe62352f5be4aefecaad4e77dc4da780634 Mon Sep 17 00:00:00 2001 From: Alessandro Pieve Date: Tue, 15 Nov 2016 11:11:54 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/admin/auth-portlet-manager@134167 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 9 ++- .../server/AuthServiceImpl.java | 64 +++++++++++-------- 2 files changed, 44 insertions(+), 29 deletions(-) diff --git a/pom.xml b/pom.xml index b7b61c4..9719b29 100644 --- a/pom.xml +++ b/pom.xml @@ -43,12 +43,9 @@ ${project.build.directory}/${project.build.finalName} distro config - 2.7.0 - - ${env.KEYS} UTF-8 @@ -176,6 +173,12 @@ + + com.liferay.portal + portal-service + provided + + diff --git a/src/main/java/org/gcube/portlets/admin/authportletmanager/server/AuthServiceImpl.java b/src/main/java/org/gcube/portlets/admin/authportletmanager/server/AuthServiceImpl.java index 49ee3f4..423f98b 100644 --- a/src/main/java/org/gcube/portlets/admin/authportletmanager/server/AuthServiceImpl.java +++ b/src/main/java/org/gcube/portlets/admin/authportletmanager/server/AuthServiceImpl.java @@ -16,7 +16,6 @@ import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpSession; - import org.gcube.application.framework.core.session.ASLSession; import org.gcube.common.authorization.library.policies.Action; import org.gcube.common.authorization.library.policies.Policy; @@ -39,7 +38,6 @@ import org.gcube.portlets.admin.authportletmanager.shared.ConstantsSharing; import org.gcube.portlets.admin.authportletmanager.shared.PolicyAuth; import org.gcube.portlets.admin.authportletmanager.shared.Quote; import org.gcube.portlets.admin.authportletmanager.shared.Service; -import org.gcube.portlets.admin.authportletmanager.shared.exceptions.ContextException; import org.gcube.portlets.admin.authportletmanager.shared.exceptions.ServiceException; import org.gcube.portlets.admin.authportletmanager.shared.exceptions.TypeCallerException; import org.gcube.resources.discovery.client.api.DiscoveryClient; @@ -47,19 +45,18 @@ import org.gcube.resources.discovery.client.queries.api.SimpleQuery; import org.gcube.vomanagement.usermanagement.GroupManager; import org.gcube.vomanagement.usermanagement.RoleManager; import org.gcube.vomanagement.usermanagement.UserManager; -import org.gcube.vomanagement.usermanagement.exception.GroupRetrievalFault; -import org.gcube.vomanagement.usermanagement.exception.UserManagementSystemException; import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager; import org.gcube.vomanagement.usermanagement.impl.LiferayRoleManager; import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager; import org.gcube.vomanagement.usermanagement.model.GCubeGroup; import org.gcube.vomanagement.usermanagement.model.GCubeRole; import org.gcube.vomanagement.usermanagement.model.GCubeUser; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.google.gwt.user.server.rpc.RemoteServiceServlet; +import com.liferay.portal.kernel.log.Log; +import com.liferay.portal.kernel.log.LogFactoryUtil; + /** * AuthServiceImpl * @@ -72,9 +69,7 @@ import com.google.gwt.user.server.rpc.RemoteServiceServlet; @SuppressWarnings({ "serial", "deprecation" }) public class AuthServiceImpl extends RemoteServiceServlet implements AuthManagerService { - - private static Logger logger = LoggerFactory - .getLogger(AuthServiceImpl.class); + private static final Log logger = LogFactoryUtil.getLog(AuthServiceImpl.class); /** * {@inheritDoc} @@ -89,44 +84,48 @@ implements AuthManagerService { } - - - - /** * Load all list policy */ @Override public ArrayList loadListPolicy(String context) throws ServiceException { try { + HttpSession session = this.getThreadLocalRequest().getSession(); ArrayList policyList =new ArrayList(); ASLSession aslSession = SessionUtil.getASLSession(session); String username = aslSession.getUsername(); //String scope=aslSession.getScope(); //String token =aslSession.getSecurityToken(); - if (context==null) + if (context==null){ + logger.debug("loadListPolicy found context:"+null); context=aslSession.getScope(); - String token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + } + String token= authorizationService().resolveTokenByUserAndContext(username, context); + if (token==null) + token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + if (ConstantsSharing.DEBUG_MODE) { token=ConstantsSharing.DEBUG_TOKEN; context="/gcube/devNext"; - logger.debug("load list policy in scope:"+context); + logger.debug("Debug load list policy in scope:"+context); } + aslSession.setSecurityToken(token); + aslSession.setScope(context); + logger.debug("load list policy in scope:"+context+"-token:"+token+"-username:"+username); SecurityTokenProvider.instance.set(token); - List policies = authorizationService().getPolicies(context); + List policies = authorizationService().getPolicies(context); if (policies!=null){ - logger.info("Load List Policy Find:"+policies.size()); + logger.debug("Load List Policy Find:"+policies.size()); if (policies.size()>0){ for (Policy policy : policies){ - logger.debug("retrieve a policy service object"+policy); ArrayList callers =new ArrayList(); boolean excludeCallers=false; if (policy.getPolicyType()==PolicyType.USER){ //retrive caller type user or role List callerExcludes=((User2ServicePolicy) policy).getEntity().getExcludes(); TypeCaller typecaller=TypeCaller.valueOf(((User2ServicePolicy) policy).getEntity().getType().toString().toLowerCase()); - logger.debug("callerExcludes:"+callerExcludes +" and size:"+callerExcludes.size()); + //logger.debug("callerExcludes:"+callerExcludes +" and size:"+callerExcludes.size()); if (callerExcludes.size()>0){ //condition with all excepiton for (String callerExclude: callerExcludes){ @@ -144,7 +143,7 @@ implements AuthManagerService { } else{ //retrive caller type service - logger.debug("retrieve a policy service"+policy.toString()); + //logger.debug("retrieve a policy service"+policy.toString()); String callerIdentifier=((Service2ServicePolicy) policy).getClient().getService().getName().toString()+ ":"+((Service2ServicePolicy) policy).getClient().getService().getServiceClass()+ ":"+((Service2ServicePolicy) policy).getClient().getService().getServiceId().toString(); @@ -203,13 +202,17 @@ implements AuthManagerService { //String token =aslSession.getSecurityToken(); if (context==null) context=aslSession.getScope(); - String token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + + String token= authorizationService().resolveTokenByUserAndContext(username, context); + if (token==null) + token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + //String token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); if (ConstantsSharing.DEBUG_MODE) { token=ConstantsSharing.DEBUG_TOKEN; } SecurityTokenProvider.instance.set(token); if (ConstantsSharing.MOCK_UP) { - logger.trace("List Caller on debug mode"); + logger.debug("List Caller on debug mode"); callers.add(new Caller(TypeCaller.role,"administrator")); callers.add(new Caller(TypeCaller.user,"lucio.lelii")); callers.add(new Caller(TypeCaller.role,"agent")); @@ -283,7 +286,10 @@ implements AuthManagerService { else{ //Get List service String username = aslSession.getUsername(); - String token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + String token= authorizationService().resolveTokenByUserAndContext(username, context); + if (token==null) + token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + //String token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); SecurityTokenProvider.instance.set(token); SimpleQuery query = queryFor(GCoreEndpoint.class); @@ -411,7 +417,10 @@ implements AuthManagerService { List policies = new ArrayList(); //String token =aslSession.getSecurityToken(); String username = aslSession.getUsername(); - String token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + String token= authorizationService().resolveTokenByUserAndContext(username, context); + if (token==null) + token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + //String token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); if (ConstantsSharing.DEBUG_MODE) { token=ConstantsSharing.DEBUG_TOKEN; @@ -490,7 +499,10 @@ implements AuthManagerService { if (context==null) context=aslSession.getScope(); String username = aslSession.getUsername(); - String token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + String token= authorizationService().resolveTokenByUserAndContext(username, context); + if (token==null) + token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); + //String token = authorizationService().generateUserToken(new UserInfo(username, new ArrayList()), context); //String token =aslSession.getSecurityToken();