Liferay 7 角色权限问题:您没有访问此 portlet 所需的角色。

问题描述 投票:0回答:1

我在Liferay 7.3.0中创建了一个PortletMVC,它在Tomcat 9中部署成功,但是当我在门户中拖动它时,我看不到它,显示的信息如下。

" You do not have the roles required to access this portlet.
" 

图片

enter image description here

我检查了页面的权限是公开的,客人可以查看。

enter image description here

有谁能帮帮我,如果有什么问题,谢谢!这是classController。

@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
spring liferay hook portlet spring-portlet-mvc
1个回答
0
投票

请注意,从Liferay 7.0开始,BaseStrutsPortletAction机制不再适用于大多数portlet,因为Liferay不再使用Struts Actions,而是使用Liferay MVCCommands。

https:/help.liferay.comhcen-usarticles360029005292-Upgrading-Struts-Action-Hooks。https:/liferay.devforums-message_boardsmessage96576834。

我建议你使用Liferay Developer Studio,这样你可以在portlet开发过程中看到哪些classesmethods是可用的。

如果你需要进一步的帮助,我很乐意提供帮助,只是请你发来更详细的信息,比如:你想实现什么,以及更详细的步骤,比如。

  1. 下载Liferay门户网站,从: https:/sourceforge.netprojectslportalfilesLiferay%20Portal7.3.0%20GA1liferay-ce-portal-tomcat-7.3.0-ga1-20200127150653953.tar.gzdownload。
  2. 执行: blade update mkdir lr_workspace blade init
  3. 编辑:gradle.properties,并确保它包含Liferay 7.3.0的特定值:liferay.version.default=7.3profile.name=gradleliferay.workspace.bundle.url=。https:/releases-cdn.liferay.comportal7.3.0-ga1liferay-ce-portal-tomcat-7.3.0-ga1-20200127150653953.tar.gz。app.server.tomcat.version=9.0.33liferay.workspace.target.platform.version=7.3.0target.platform.index.sources=false。
  4. 通过执行: blade create -t mvc-portlet -v 7.3 -p com.liferay.test MVCPortlet7303创建我的Portlet。

等。亲切的问候,彼得


0
投票

正如错误所说的那样。

[SecurityPortletContainerWrapper:235] Invalid portlet ID /app_WAR_app

你没有附加一个独特的 身份证 到您的 portlet,您应该知道在 Liferay 中,每个 portlet 都有一个唯一的 ID (KEY),使用属性 javax.portlet.name

以这段代码为例。

@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,它简单、轻巧、有效、易用。

Liferay MVC Porlet

问候。

© www.soinside.com 2019 - 2024. All rights reserved.