2017-02-22 7 views
0

現在、auiを使用してデータテーブルにactionUrlを自動的に生成しようとしています。Liferay AUI createUrl() - プロセスの拒否の処置

私はすでにフォーマッタを使用してリンクを生成していますが、リンクの1つを使用してアクションを実行しようとすると、リンクは拒否され、アクションは実行されません。私はこれがクロスサイトスクリプティング保護手段の一部であると仮定しています。

[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の実行を許可することができます方法を知っていますか?

種類は、認証トークンがあなたのアクションURLに存在しない場合に発生 ジョン・スミス

答えて

0

について。あなたは、認証パラメータを追加することができます。また、その場合はスキップする3つのオプションがあります:portlet.xmlにする

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

追加のinit-PARAM:

編集portal-ext.propertiesを

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

編集ポータルext.propertieこれは私にとって偉大な働いているS(推奨されません)

auth.token.check.enabled=true 
+0

はあなたに感謝。しかし、それをパラメータに追加したいのであれば、私はどのようにauthトークンを取得できますか? –

+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" –