diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSUserManager.java b/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSUserManager.java index e8bce76..37b49c3 100644 --- a/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSUserManager.java +++ b/src/main/java/org/gcube/vomanagement/usermanagement/impl/ws/LiferayWSUserManager.java @@ -51,6 +51,11 @@ import com.liferay.portal.kernel.exception.SystemException; */ public class LiferayWSUserManager implements UserManager{ + // save host/port and schema + private String schema; + private String host; + private int port; + // These properties are needed to save authentication credentials once. private HttpClientContext localContext; private CredentialsProvider credsProvider; @@ -89,6 +94,10 @@ public class LiferayWSUserManager implements UserManager{ */ public LiferayWSUserManager(String user, String password, String host, String schema, int port) throws Exception{ + this.host = host; + this.port = port; + this.schema = schema; + target = new HttpHost(host, port, schema); credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( @@ -206,9 +215,9 @@ public class LiferayWSUserManager implements UserManager{ } return null; } - + /** - * Evaluate the user's avatar url path (relative) + * Evaluate the user's avatar url path (absolute!) * @param userUuid * @param portraitId * @return @@ -216,15 +225,17 @@ public class LiferayWSUserManager implements UserManager{ * @throws NoSuchAlgorithmException */ private String getUserAvatarAbsoluteURL(String userUuid, long portraitId) throws UnsupportedEncodingException, NoSuchAlgorithmException{ - + // url looks like LIFERAY_PORTAL/image/user_male_portrait?img_id=21125690&img_id_token=aPduzUQfxcz9kiLzD0yrChPU8k4%3D // where img_id_token is the sha-1/base64 encoding, encoded as query parameter, of userUuid + if(portraitId == 0) + return null; + MessageDigest md = MessageDigest.getInstance("SHA-1"); String imageId = URLEncoder.encode(Base64.encodeBase64String(md.digest(userUuid.getBytes())), "UTF-8"); - - return "/image/user_male_portrait?img_id=" + portraitId + "&img_id_token=" + imageId; - - + + return schema + "://" + host + ":" + port + "/image/user_male_portrait?img_id=" + portraitId + "&img_id_token=" + imageId; + } /**