From 6a64ee209ca57b58f8d1a5fdd98fa432daa64503 Mon Sep 17 00:00:00 2001 From: Costantino Perciante Date: Mon, 6 Feb 2017 14:11:46 +0000 Subject: [PATCH] getUserAvatarAbsoluteURL returns an absolute path (ws service). Returns null if the user doesn't have an image git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/vo-management/usermanagement-core@142258 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../impl/ws/LiferayWSUserManager.java | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) 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; + } /**