2017-02-22 6 views
0

В настоящее время я пытаюсь автоматически генерировать actionUrls в datatable с помощью aui.Liferay AUI createUrl() - Действие процесса отклонения

Я уже создаю ссылки, используя formator, однако, как только я пытаюсь вывести действие, используя одну из ссылок, он отклоняется и действие не выполняется. Я предполагаю, что это часть мер защиты от скриптовых сценариев.

[http-bio-8080-exec-2][SecurityPortletContainerWrapper:630] Reject process action for /c/portal/layout on functiontest_WAR_functionTestportlet 

Я генерация ссылки, как это:

<aui:script> 
AUI().use( 
      'aui-datatable', 
      'datatable-sort', 
      'datatable-paginator', 
      'aui-datatable-highlight', 
      'liferay-portlet-url', 
      function(A) { 
      var columns =[{ 
       label : 'ID', 
       key : 'testVar', 
       allowHTML : true, 
       sortable : true, 
       formatter : function(o) { 

        var url = Liferay.PortletURL.createActionURL(); 
        url.setWindowState("<%= LiferayWindowState.NORMAL.toString()%>"); 
        url.setPortletMode("<%= LiferayPortletMode.VIEW %>"); 
        url.setPortletId("<%= themeDisplay.getPortletDisplay().getId() %>"); 
        url.setPlid("<%= plid %>"); 
        url.setParameter("javax.portlet.action","actionTest"); 
        url.setParameter("testVar",o.data.testVar); 

        return '<a href="'+ url +'">' + o.data.TestVar + '</a>'; 
       } 
      }]; 
     var table = new A.DataTable(
       { 
        ... 
       } 
      ).render('#DataTable'); 
     ..... 
</aui:script> 

Кто-нибудь знает, как я могу разрешить запуск свежа сгенерированных URL'а без отключения безопасности?

С наилучшими пожеланиями Джон Смит

ответ

0

Это происходит, когда маркер аутентификации не существует в вашем URL действия. Можно добавить параметр аутентификации или у вас есть 3 варианта, чтобы пропустить этот случай:

Редактирование portal-ext.properties:

auth.token.ignore.actions=.... 

Добавление инициализации-параметров в portlet.xml:

<init-param> 
    <name>check-auth-token</name> 
    <value>false</value> 
</init-param> 

Редактирование портального ext.propertie s (НЕ РЕКОМЕНДУЕТСЯ)

auth.token.check.enabled=true 
+0

Это работает отлично подходит для меня спасибо. Однако, как бы я мог решить, может ли получить токен аутентификации, если бы я хотел добавить его к параметру? –

+0

Liferay добавьте этот параметр по умолчанию, как сказано здесь: https://web.liferay.com/es/community/wiki/-/wiki/Main/Authentication+Token Если у вас есть новые пользовательские действия или портлеты, проверьте, нужно ли добавить его в белый список со следующими свойствами: "portlet.add.default.resource.check.whitelist" "portlet.add.default.resource.check.whitelist.actions" –

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