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

时间:2015-04-08 17:00:08

标签: liferay liferay-6

我试图提供对网址http://localhost:8080/api/jsonws/journalarticle/get-article-by-url-title/group-id/10182/url-title/events

的公开访问权限

当我尝试访问此URL而未登录Liferay时,出现以下错误:

{"exception":"Authenticated access required"}

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

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

我还尝试将值设置为get*而没有运气。我需要通过托管在不同域上的AngularJs应用程序来访问此API,因此我还需要设置CORS访问权限。

2 个答案:

答案 0 :(得分:2)

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

JournalArticleLocalServiceUtil.getArticleByUrlTitle(groupId, urlTitle);

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

  

@AccessControlled(guestAccessEnabled =真)

示例:

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

答案 1 :(得分:0)

尝试在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调用所需的身份验证。