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