2016-11-07 8 views
0

Я пытаюсь загрузить файл в Liferay, и я устал, загрузил «большой» размер файла (более 2 МБ). С логLiferay: [SecurityPortletContainerWrapper: 630] Отменить действие процесса

[SecurityPortletContainerWrapper: 630] Отклонить действие процесса

<%@ include file="/init.jsp"%> 
<portlet:actionURL var="intergrateURL" name="intergrate" /> 
<aui:form method="post" action="<%=intergrateURL.toString() %>" 
enctype="multipart/form-data"> 
    <aui:input name="messagContent1" /> 
    <aui:input name="messagContent2" /> 
    <aui:input name="uploadFileHere" type="file"/> 
    <aui:button value="submit" type="submit"/> 
</aui:form> 

портлетов Действие:

public class IntergratePortlet extends MVCPortlet { 

public void intergrate(ActionRequest actionRequest, 
     ActionResponse actionResponse) { 

    UploadPortletRequest uploadPortletRequest = PortalUtil 
      .getUploadPortletRequest(actionRequest); 

    String messageContent1 = uploadPortletRequest.getFullFileName("uploadFileHere"); 
    String messageContent2 = ParamUtil.getString(actionRequest, 
      "messagContent2"); 

    InputStream fileInputStream = null; 
    byte[] fileByteArray; 

    MessageContentBean messageContentBean = new MessageContentBean(); 

    messageContentBean.setMessageContent1(messageContent1); 
    messageContentBean.setMessageContent2(messageContent2); 

    try { 
     fileInputStream = uploadPortletRequest.getFileAsStream("uploadFileHere"); 
     fileByteArray = ReceiveMessage.convertInputStreamToByteArray(fileInputStream); 
     messageContentBean.setFileMessage(fileByteArray); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    SendJmsMessage sendJmsMessage = new SendJmsMessage(); 
    sendJmsMessage.doSendMessage("103.74.121.22", messageContentBean); 
    // sendJmsMessage.doSendMessage("127.0.0.1", messageContentBean); 
} 

}

ответ

1

Есть 2 варианта:

Вариант 1:

Добавить ниже вашего portlet.xml отключить защиту CSRF от Liferay:

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

Вариант 2:

Изменение $ {liferay_installed_dir}/портального доб .properties, чтобы добавить ниже:

auth.token.ignore.portlets = $ {form} _WAR _ $ {portlet}

Предлагает вам использовать «Вариант 1», для получения дополнительной информации вы можете обратиться к this post.

Как отменить CSRF за действие поищите LifeRay официальный документ/вики с ключевыми словами:

  • "portlet.add.default.resource.check.whitelist"
  • «portlet.add.default .resource.check.whitelist.action "