Reject process action for的解决与portlet in portlet 的实现方式

portlet内嵌入其他的portlet的做法。

假设portlet名为svgConfiguration

工程类型为portlet 工程名为ps

liferay有一个标签 为<liferay-portlet:runtime portletName=”svgConfiguration_WAR_psportlet” />

在其他的portlet的页面中使用这个标签 就可以嵌入svgConfiguration portlet

使用这个 标签嵌入的portlet的action中的renderResponse.setRenderParameter传参在页面中接收不到。

请使用actionRequest.setAttribute(“key”,value);的方式来传值。

 

当我们在内嵌的portlet中请求其后台时 会发生异常。无法请求到后台的action。异常信息为

Reject process action for http://localhost:8080/web/guest/welcome on svgConfiguration_WAR_psportlet.

这是因为liferay为了防止CSRF。进行了校验。我们如果想将被嵌入的portlet加入例外。我们需要在EXT工程的portal-ext.properties里面加入

auth.token.ignore.portlets=82,svgConfiguration_WAR_psportlet

其中的82是源码中就存在的。多个portlet之间用半角逗号隔开。