[
https://issues.apache.org/jira/browse/SLING-5824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15365997#comment-15365997
]
Christanto commented on SLING-5824:
-----------------------------------
bq. IIUC this happens in client code, so what prevents you from handling both
GET and POST in your server-side code?
It is not a blocker. The POST handler is currently written (as per the code
mentioned in the issue description) for each sling component that potentially
requires a POST like this.
You will notice the POST.jsp will be identical for each component. So this is a
good sign to solve it using filter, instead of servlet.
For example given the sling components in the system:
{code}
+ /libs/my/component1
+ component1.jsp
+ POST.jsp
+ /libs/my/component2
+ component2.jsp
+ POST.jsp
{code}
Both POST.jsp above have identical code, which is just to forward to GET.
> Servlet Filter to do POST tunnelling to GET
> -------------------------------------------
>
> Key: SLING-5824
> URL: https://issues.apache.org/jira/browse/SLING-5824
> Project: Sling
> Issue Type: Improvement
> Components: Servlets
> Reporter: Christanto
>
> Sometimes there is a case where the request URL is very long. For example,
> during advanced search where there are many fields.
> To accommodate this, the request is tunneled through POST, such that the
> client do a POST request and then the server convert it to GET, so that the
> other code in the chain only knows about GET.
> So far the custom POST handler needs to be created specifically for this:
> {code}
> slingRequest.getRequestDispatcher(resource).forward(new
> HttpServletRequestWrapper(request) {
> @Override
> public String getMethod() {
> return "GET";
> }
> }, response);
> {code}
> Since this is generic and to avoid creating a custom POST handler every time
> for this, it makes sense to implement this in Sling using Servlet Filter. For
> example, a special parameter can be introduced for this purpose named
> "\_method\_". So the filter will check for this parameter and wrap the
> request accordingly (also remove the "\_method\_"). This is similar to
> "\_charset\_" parameter for encoding.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)