<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Using alf_method to simulate POST in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/using-alf-method-to-simulate-post/m-p/249326#M202456</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I developed an application using webscripts in Alfresco 3.4. To reduce the number of webscripts often i declared webscripts supporting POST but i called them also with a GET using the parameter alf_method.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://....../wcsevice/...?alf_method=POST&amp;amp;param1=" rel="nofollow noopener noreferrer"&gt;http://....../wcsevice/...?alf_method=POST&amp;amp;param1=&lt;/A&gt;&lt;SPAN&gt;….&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also indicated in this post&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="https://forums.alfresco.com/en/viewtopic.php?f=36&amp;amp;t=25633#p83399" rel="nofollow noopener noreferrer"&gt;https://forums.alfresco.com/en/viewtopic.php?f=36&amp;amp;t=25633#p83399&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In Alfresco 4.0 seems that these feature is no longer available. The wiki page of webscripts report that these feature (tunneling) is available only for POST call. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Looking into spring framework extension source code version 1.0.0 included in Alfresco I found the problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Class org.springframework.extensions.webscripts.servlet.WebScriptServletRuntime&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt; protected String getScriptMethod()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String method = req.getMethod();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(method.equalsIgnoreCase("post"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; boolean overloadParam = false;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String overload = req.getHeader("X-HTTP-Method-Override");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(overload == null || overload.length() == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; overload = req.getParameter("alf_method");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; overloadParam = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(overload != null &amp;amp;&amp;amp; overload.length() &amp;gt; 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(logger.isDebugEnabled())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger.debug((new StringBuilder()).append("POST is tunnelling method '").append(overload).append("' as specified by ").append(overloadParam ? "alf_method parameter" : "X-HTTP-Method-Override header").toString());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; method = overload;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return method;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem is the if that check only the post method&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Looking last release RC1 on subversion the "if" statement is&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (method.equalsIgnoreCase("get") || method.equalsIgnoreCase("post"))&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Paolo&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 27 Mar 2012 10:19:41 GMT</pubDate>
    <dc:creator>sigpaolo</dc:creator>
    <dc:date>2012-03-27T10:19:41Z</dc:date>
    <item>
      <title>Using alf_method to simulate POST</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/using-alf-method-to-simulate-post/m-p/249326#M202456</link>
      <description>I developed an application using webscripts in Alfresco 3.4. To reduce the number of webscripts often i declared webscripts supporting POST but i called them also with a GET using the parameter alf_method.http://....../wcsevice/...?alf_method=POST&amp;amp;param1=….Also indicated in this posthttps://foru</description>
      <pubDate>Tue, 27 Mar 2012 10:19:41 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/using-alf-method-to-simulate-post/m-p/249326#M202456</guid>
      <dc:creator>sigpaolo</dc:creator>
      <dc:date>2012-03-27T10:19:41Z</dc:date>
    </item>
    <item>
      <title>Re: Using alf_method to simulate POST</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/using-alf-method-to-simulate-post/m-p/249327#M202457</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the GET-support was previously only included for testing purposes and seems to have been removed deliberately (&lt;/SPAN&gt;&lt;A href="http://wiki.alfresco.com/index.php?title=Web_Scripts&amp;amp;action=historysubmit&amp;amp;diff=32815&amp;amp;oldid=30705" rel="nofollow noopener noreferrer"&gt;explicit wiki change by KevinR&lt;/A&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I do not quite understand your need to use the tunneling approach - is it for convenience or to circumvent something strange in your environment? Both due to potential URL length limitations of software components and sideeffects due to GET request caching, I'd advise against using GET for HTTP tunneling in a production application. It is also not really needed for testing purposes, as there are various testing tools far better suited than your browser address bar.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Axel&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Apr 2012 15:50:12 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/using-alf-method-to-simulate-post/m-p/249327#M202457</guid>
      <dc:creator>afaust</dc:creator>
      <dc:date>2012-04-09T15:50:12Z</dc:date>
    </item>
    <item>
      <title>Re: Using alf_method to simulate POST</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/using-alf-method-to-simulate-post/m-p/249328#M202458</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The purpose of alf_method and x-http-method-override header is to overcome client limitations.&amp;nbsp; I found this post when I was looking for a work-around for Crystal Report's limitation to HTTP GET when consuming xml via http without SOAP.&amp;nbsp; I'm looking to run a CMIS query this way.&amp;nbsp; I hope they put this back;&amp;nbsp; Crystal Reports is still widely used.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Jun 2012 17:38:12 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/using-alf-method-to-simulate-post/m-p/249328#M202458</guid>
      <dc:creator>bkalbfus</dc:creator>
      <dc:date>2012-06-26T17:38:12Z</dc:date>
    </item>
  </channel>
</rss>

