Liferay API 调用需要经过身份验证的访问

Posted

技术标签:

【中文标题】Liferay API 调用需要经过身份验证的访问【英文标题】:Liferay API call requires authenticated access 【发布时间】:2016-08-01 19:48:44 【问题描述】:

我们正在通过邮递员进行 Liferay API 调用

...localhost:9080/api/jsonws/journalarticle/get-article/group-id/21333/article-id/21355

这就是 JSON 结果:

"message": "Authenticated access required", "exception":"java.lang.SecurityException"

我们正在使用 Liferay 6.2

我们是否必须添加额外的参数(如 p_auth)?

或者也许我们在不知不觉中做错了什么?

【问题讨论】:

【参考方案1】:

ServiceBaseImpl 类中的方法上方添加它

@AccessControlled(guestAccessEnabled=true)

例如:我的以下网址是 http://localhost:8080/[portlet-name]/api/jsonws/[service-entity]/get-remote-data

@AccessControlled(guestAccessEnabled=true)
public String getRemoteData() 

    JSONObject obj = new JSONObject();

    try 

        obj.put("name", "sean");
        obj.put("age", 39);

     catch (JSONException e) 
        e.printStackTrace();
    


    return obj.toString();


【讨论】:

【参考方案2】:

您好,您不需要邮递员提供的 p_auth,只需使用您的 liferay 凭据通过基本登录配置选项卡授权即可。

有关调用 json 服务的更多信息,请参阅链接https://www.liferay.com/it/web/tomas.polesovsky/blog/-/blogs/json-ws-security

【讨论】:

谢谢,真棒。对我来说效果很好。

以上是关于Liferay API 调用需要经过身份验证的访问的主要内容,如果未能解决你的问题,请参考以下文章

如何防止经过身份验证的用户欺骗 RESTful API 调用

通过 OAuth 对 Google API 进行经过身份验证的调用时遇到问题

来自 laravel 会话登录的经过身份验证的 api 调用。可能吗?

如何从 Nuxt 前端访问经过身份验证的 GraphQL API

如何从 android 客户端进行经过身份验证的 django rest api 调用?

使用有效的 JWT 令牌调用经过 keycloak 身份验证的 API