Get it on Google Play

Montar URL con la imagen del usuario en Liferay

20-11-2017
 
Url img portrait liferay

Url img portrait liferay

Una de estas cosas complejas que tiene Liferay es su sistema para montar las URLs con la foto del usuario. Hay que decir que si tenemos acceso al objeto ‘themeDisplay’ es fácil de construir la URL a la imagen de un usuario simplemente utilizando el método de la classe com.liferay.portal.model.User ‘getPortraitURL(ThemeDisplay themeDisplay)’.

También hay que decir que esto se debe a un tema de seguridad, ya que si no tuviese este sistema complejo para crear estas URLs cualquiera podría obtener todas las imágenes de los usuarios recorriendo las URLs ‘/image/user_male_portrait?img_id=<h;id imagen>'(Donde ‘id imagen’ es un entero, que referencia al portraitId de la classe com.liferay.portal.model.User) e identificar a todo kiski.

Si queremos eliminar esta opción de seguridad(Y ahorrarnos trabajo a corto plazo y un posible desastre a medio/largo) podemos simplemente configurar lo siguiente en el fichero portal-ext.properties:

users.image.check.token=false

Si, por el contrario queremos hacerlo bien, esto es tan sencillo como crear la URL de la siguiente manera(Donde ‘u’ es un objeto de la classe User):

Image image = ImageLocalServiceUtil.getImage(u.getPortraitId());
String token=WebServerServletTokenUtil.getToken(image.getImageId());
				
Strint urlPortrait='/image/user_male_portrait?img_id="+image.getImageId()+"&img_id_token="+HttpUtil.encodeURL(DigesterUtil.digest(u.getUuid()))+"&t="+token;

Vemos que a la URL que devuelve la imagen se le pasan tres parámetros, el primero(img_id) el id de la imagen que ya hemos explicado antes de donde sale y los otros dos que son calculados para asegurar que nadie puede hacer un recorrido y ver las caras de todos nuestros usuarios en el portal.

Espero que me haya sabido explicar bien. Un saludo y hasta la próxima.

Interesado en formación Liferay?

 

Leave a Reply