Skip to main content

[jsr362-experts:] JSR 362 Ajax Proposal (alternate) - Action URLs

  • From: Martin Scott Nicklous < >
  • To:
  • Subject: [jsr362-experts:] JSR 362 Ajax Proposal (alternate) - Action URLs
  • Date: Mon, 3 Feb 2014 09:36:50 +0100



Action URLs are critical, since they are often used to submit a form that
causes a data update on the portal server using the HTTP POST method. For
example, am action URL might be used to submit a for for a money transfer
or to order something.

For that reason, some portal implementations (WebSphere Portal for example)
protect the action URLs by adding information to the URL in such a manner
that the URL cannot be reused or used out of context. If the same form is
displayed after the HTTP POST using the action URL, the URL must be
refreshed
in the markup. This increases security by preventing hacking through
cross-site
scripting, replay, and some other forms of hacker attacks.

With JSR 286 portlets, this can be handled transparently for the portlet,
since after a form submission, the entire page is generally refreshed,
allowing
a new action URL to be included in the markup.

The JSR 362 Ajax Proposal 2b can also handle such action URL functionality
transparently for the portlet during stateful Ajax request processing,
since
the action execution is encapsulated by the JavaScript action() method
provided
by the portlet hub. The PortletHub can if necessary generate or retrieve a
new
action URL after the original action URL has been "used".

The alternative proposal uses special partial action URLs that are
contained
in the markup, where they can potentially be used repeatedly. I don't see
how
it would work with portals that generate "one-time" action URLs as
described
above.

Also, action URLs are specialized render URLs that can contain portal page
state information as well as the render and action parameters for the
portlet.
If the page state or the portlet state changes through a stateful Ajax
request, the action URLs used by the portlet may need to be regenerated in
order to contain the new state information, depending on the portal
implementation.

Once again, since the PortletHub presented with proposal 2b manages the
state
of the portal page on the client, the appropriate action URL can be
generated
for the portlet when the portlet calls the PortletHub#action() method.

The alternative proposal seems to lack a possibility for generating action
URLs
appropriate to the page state.

It would be possible to place the burden for refreshing the action URLs on
the portlet, by requiring the portlets to refresh their action URLs when a
state update occurs. However, I think that would be an undesirable
programming model, since it would be error-prone and would place a large
burden on the portlet developers - a burden that they do not have with
JSR 286 portlets.

regards,
Scott





[jsr362-experts:] JSR 362 Ajax Proposal (alternate) - Action URLs

Martin Scott Nicklous 02/03/2014
 
 
Close
loading
Please Confirm
Close