2015-04-08 4 views
1

Я пытаюсь обеспечить доступ общественности к URL http://localhost:8080/api/jsonws/journalarticle/get-article-by-url-title/group-id/10182/url-title/eventsLiferay 6.2: Разрешить доступ общественности к одному методу API JSON

При попытке доступа к этому URL без входа в Liferay, я получаю следующее сообщение об ошибке:

{"exception":"Authenticated access required"} 

Я попытался установить следующее portal-ext.properties:

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

Я также попытался установить значения в get* не повезло. Мне нужно получить доступ к этому API через приложение AngularJs, размещенное в другом домене, поэтому мне также необходимо настроить доступ CORS, если это возможно.

ответ

2

Даже я попытался все выше, не работали, что вы можете сделать, это в пользовательский портлет создать свой собственный API для веб-сервисов JSON в том, что вызывать API

JournalArticleLocalServiceUtil.getArticleByUrlTitle(groupId, urlTitle); 

В вашем * ServiceImp.java добавить тег ниже, см примере

@AccessControlled(guestAccessEnabled=true)

Пример:

@AccessControlled(guestAccessEnabled=true) 
public JurnalArtical yourMethodName(){...} 
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= 

оставить четвертый один пустой.

Это отключит аутентификацию, необходимую для вызова JSON для Liferay.

+0

NOPE. Это не сработало. –

+0

Также попробуйте добавить третье свойство ... – aston

+0

По-прежнему получайте то же исключение даже после добавления третьего свойства. Я попытался перезапустить сервер. Кстати, я использую корпоративную версию Liferay, если это имеет значение. –

Смежные вопросы