Get it on Google Play

Formación Liferay DXP: Seguridad y permisos en portlets Liferay

28-06-2017
 
Permisos Liferay

Permisos Liferay

Una de las piezas mas importantes a gestionar en un desarrollo es la seguridad, por pequeño que sea, cualquier desarrollo corporativo nos obliga a trabajar con usuario y permisos. La seguridad es un tema crítico en el desarrollo de portales, eCommerce, software corporativo, etc.

Liferay nos soluciona toda la parte de gestión de usuarios, permisos, roles, etc. de manera que podemos delegar toda esta parte en el portal que lo hará de manera mucho mas eficiente que nosotros. Para poder integrar todo el sistema de permisos Liferay en nuestro portlet OSGI lo haremos de la siguiente manera:

Nos crearemos el fichero ‘src/main/resources/resource-actions/default.xml’ que tendrá una pinta como la siguiente:

<?xml version="1.0"?>
<!DOCTYPE resource-action-mapping PUBLIC "-//Liferay//DTD Resource Action Mapping 7.0.0//EN" "http://www.liferay.com/dtd/liferay-resource-action-mapping_7_0_0.dtd">

<resource-action-mapping>
	<portlet-resource>
		<portlet-name>com_example_portlet_TestportletmvcportletPortlet</portlet-name>
		<permissions>
			<supports>
				<action-key>ALTA_COCHE</action-key>
				<action-key>ACCESO_LISTADO</action-key>
			</supports>
			<site-member-defaults>
				<action-key>ACCESO_LISTADO</action-key>
			</site-member-defaults>
			<guest-defaults>
				<action-key>ACCESO_LISTADO</action-key>
			</guest-defaults>
			<guest-unsupported>
				<action-key>ALTA_COCHE</action-key>
			</guest-unsupported>
		</permissions>
	</portlet-resource>
</resource-action-mapping>

En este ejemplo, le configuramos al portlet ‘com_example_portlet_TestportletmvcportletPortlet’ los permisos ‘ALTA_COCHE’ y ‘ACCESO_LISTADO’. Además, configuramos que, por defecto, el usuario invitado(No logueado) y los miembros del portal tendrán los permisos ‘ACCESO_LISTADO’. También configuramos que el usuario invitado nunca pueda tener el permiso ‘ALTA_COCHE’. Como veis, muy configurable.

Una vez tenemos creado el fichero XML tendremos que crear el fichero ‘src/main/resources/portlet.properties’ que tendrá la siguiente pinta:

resource.actions.configs=resource-actions/default.xml

En este fichero configuramos la localización del anterior y diría que será siempre el mismo en todos los desarrollos.

A partir de este momento ya podemos saber si un usuario tiene un determinado permiso con este simple trozo de código:

ThemeDisplay themeDisplay=(ThemeDisplay) renderRequest.getAttribute( WebKeys.THEME_DISPLAY );

PortletPermissionUtil.check(
	themeDisplay.getPermissionChecker(),
	themeDisplay.getLayout().getPlid(),
	"com_example_portlet_TestportletmvcportletPortlet",
	"ALTA_COCHE");

Simple y fácil la gestión de permisos en nuestros desarrollos Liferay.

Interesado en formación Liferay?

 

Leave a Reply