Spring Liferay 7角色/权限问题:您没有访问此portlet所需的角色
我在Liferay 7.3.0中创建了一个PortletMVC,它在Tomcat 9中成功部署,但当我在门户中拖动它时,我看不到它,显示的消息如下:Spring Liferay 7角色/权限问题:您没有访问此portlet所需的角色,spring,liferay,hook,portlet,spring-portlet-mvc,Spring,Liferay,Hook,Portlet,Spring Portlet Mvc,我在Liferay 7.3.0中创建了一个PortletMVC,它在Tomcat 9中成功部署,但当我在门户中拖动它时,我看不到它,显示的消息如下: " You do not have the roles required to access this portlet. " [图片] 我检查了页面的权限,它是公共的,客人可以查看它 如果有什么不对劲,请任何人帮忙,谢谢。 这是类控制器: @Component( immediate = true, property = {
" You do not have the roles required to access this portlet.
"
[图片]
我检查了页面的权限,它是公共的,客人可以查看它
如果有什么不对劲,请任何人帮忙,谢谢。
这是类控制器:
@Component(
immediate = true,
property = {
"path=/login/login",
"javax.portlet.security-role-ref=guest,power-user,user",
},
service = StrutsPortletAction.class
)
public class BladePortletAction extends BaseStrutsPortletAction {
@Override
public void processAction(
StrutsPortletAction originalStrutsPortletAction,
PortletConfig portletConfig, ActionRequest actionRequest,
ActionResponse actionResponse)
throws Exception {....}
控制台显示:
[SecurityPortletContainerWrapper:235] Invalid portlet ID /app_WAR_app
从您的代码中,我可以看出您正在使用: BaseStrutsPortletAction,但它与MVCPortlet不同。 请注意,自Liferay 7.0以来,BaseStrutsPortletAction机制不再适用于大多数portlet,因为Liferay不再使用Struts操作,而是使用Liferay MVC命令,请参见: 我建议使用Liferay Developer Studio,这样您就可以在portlet开发期间看到哪些类/方法可用 如果您需要进一步帮助,我很乐意提供帮助,请发送更多详细信息,如:您希望实现的目标,以及更详细的步骤,如:
刀片更新
mkdir lr_工作区
刀片初始化
亲切的问候,
彼得正如错误所说:
[SecurityPortletContainerWrapper:235] Invalid portlet ID /app_WAR_app
您还没有将唯一的ID附加到您的portlet,您应该知道,在Liferay中,每个portlet都有一个使用属性javax.portlet.name
的唯一ID(键)
以该代码为例:
@Component(
immediate = true,
property = {
"javax.portlet.name=com_fr_bladeExamplePortlet"
},
properties = "OSGI-INF/portlet.properties",
service = Portlet.class
)
public class SearchPortlet extends MVCPortlet {
}
如果您使用的是Liferay DXP,我建议您使用MVCPortlet,它简单、轻便、有效且易于使用
致以最诚挚的问候,Hello Peter,感谢您的回复,但问题与BaseStrutsPortletAction无关,因为每当我使用此命令(即普通的新portlet)创建一个新的portlet mvc时,“blade create-t mvc portlet-v 7.0-p packageName-c类名BladealPortletAction-b maven”我在进入该页面时在控制台中收到了错误消息和。也许这和许可证有关,我不知道确切的。。。刷新时控制台:[SecurityPortletContainerRapper:235]无效的portlet ID/BladeAllAction_WAR_BladeAllAction我无法在liferay-ce-portal-tomcat-7.3.0-ga1-20200127150653953.tar.gz捆绑包上重现角色相关或无效的portlet ID错误。我的步骤:blade init-b maven blade create-t mvc portlet-v 7.3-p packageName-c className bladeallettaction-b maven mvn package我将构建的portlet部署到正在运行的7.3门户,并将className portlet添加到欢迎页面。当您描述您正在做的事情时,请随意添加或修改我的步骤,请在这里添加这些步骤,以及您的pom.xml欢呼:)