2017-02-22 2 views
0

현재 aui를 사용하여 데이터 테이블에 actionUrl을 자동 생성하려고합니다.Liferay AUI createUrl() - 거부 프로세스 작업

나는 이미 formater를 사용하여 링크를 생성하고 있지만, 링크 중 하나를 사용하여 액션을 exectute하려고하면 거부되고 액션은 실행되지 않습니다. 나는 이것이 크로스 사이트 스크립팅 보호 수단의 일부라고 가정하고 있습니다.

[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=.... 

추가 초기화-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

이 나를 위해 큰 노력을 주셔서 감사합니다. 그러나 내가 어떻게 매개 변수에 추가하고 싶다면 인증 토큰을 검색 할 수 있습니까? –

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