Liferay 6.2:允许公众访问一个JSON API方法



我正在尝试提供对URL http://localhost:8080/api/jsonws/journalarticle/get-article-by-url-title/group-id/10182/url-title/events 的公共访问

当我尝试在没有登录Liferay的情况下访问此URL时,我会收到以下错误:

{"exception":"Authenticated access required"}

我尝试在portal-ext.properties中设置以下内容:

json.service.public.methods=*
jsonws.web.service.public.methods=*

我还尝试过将值设置为get*,但没有成功。我需要通过托管在不同域上的AngularJs应用程序访问这个API,所以如果可能的话,我还需要设置CORS访问。

即使我已经尝试了以上所有的非工作,你可以做的是在你的自定义portlet中为JSON web服务创建你自己的API,调用API

JournalArticleLocalServiceUtil.getArticleByUrlTitle(groupId, urlTitle);

在*ServiceImp.java中添加以下标签,请参阅示例

@AccessControlled(guestAccessEnabled=true)

示例:

@AccessControlled(guestAccessEnabled=true)
public JurnalArtical yourMethodName(){...}

尝试在portal-ext.properties 中添加属性

json.web.service.enabled=true
json.service.auth.token.enabled=false
auth.token.check.enabled=false
json.service.auth.token.hosts.allowed=

让第四个空着。

这将禁用Liferay的JSON调用所需的身份验证。

最新更新