diff --git a/.classpath b/.classpath index 47de373..04023d0 100644 --- a/.classpath +++ b/.classpath @@ -26,7 +26,7 @@ - + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 4e4a3ad..cac0df4 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -3,7 +3,9 @@ org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore org.eclipse.jdt.core.compiler.release=disabled org.eclipse.jdt.core.compiler.source=1.8 diff --git a/src/main/java/org/gcube/portal/socialmail/PeriodicTask.java b/src/main/java/org/gcube/portal/socialmail/PeriodicTask.java index cb25aac..458ab05 100644 --- a/src/main/java/org/gcube/portal/socialmail/PeriodicTask.java +++ b/src/main/java/org/gcube/portal/socialmail/PeriodicTask.java @@ -34,6 +34,7 @@ import org.gcube.applicationsupportlayer.social.mailing.AppType; import org.gcube.applicationsupportlayer.social.mailing.SocialMailingUtil; import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingSite; import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingUser; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.authorization.library.provider.UserInfo; import org.gcube.common.portal.PortalContext; import org.gcube.common.scope.api.ScopeProvider; @@ -258,13 +259,23 @@ public class PeriodicTask implements Runnable { _log.debug("Found message reply, subject: " + subject + " body: " + messageText); String newMessageId = null; - List recipientIds = null; + List recipientIds = new ArrayList<>(); try { - setAuthorizationToken(fakeSession); + String username = fakeSession.getUsername(); + String scope = fakeSession.getScope(); + ScopeProvider.instance.set(scope); + _log.debug("calling service token on scope " + scope); + List userRoles = new ArrayList<>(); + userRoles.add(DEFAULT_ROLE); + fakeSession.setSecurityToken(null); + String token = authorizationService().generateUserToken(new UserInfo(username, userRoles), scope); + SecurityTokenProvider.instance.set(token); MessageManagerClient mmClient = AbstractPlugin.messages().build(); - org.gcube.common.storagehub.model.messages.Message theMessage = mmClient.get(messageId); - - recipientIds = Arrays.asList(theMessage.getAddresses()); + org.gcube.common.storagehub.model.messages.Message theMessage = mmClient.get(messageId); + String[] addresses = theMessage.getAddresses(); + for (int i = 0; i < addresses.length; i++) { + recipientIds.add(addresses[i]); + } //add the sender and remove the person who is replying from the recipients String sender = theMessage.getSender().getUserName(); String originalText = theMessage.getBody();