You're not wrong, but I'd still like to be able to block GET. And the
other question is *why* this check isn't done for forms with submit
components (I haven't tried it, but I suspect using a regular button
rather than an ajax button would run into the same issue).
On Fri, Feb 2, 2018, at 14:45, Ernesto Reinaldo Barreiro wrote:
> Maybe I'm wrong but for AJAX only logged in user could get that
> REQUEST to> work because it is page relative. Or am I completely wrong?
> On Thu, Feb 1, 2018 at 10:45 PM, Carl-Eric Menzel
> <cmen...@wicketbuch.de>> wrote:
>> I've just encountered an interesting oddity. For a normal form
>> submission,>> there is Form#onMethodMismatch where I can decide what should
>> happen if>> somebody calls the form's URL with a GET request rather than
>> the usual>> POST. At least in 6.x and 7.x this is called from
>> onFormSubmitted() - but>> not from onFormSubmitted(submitter).
>> The result is that for forms that have an ajax button and thus
>> a valid>> submitter, I can't stop somebody building a GET request and
>> firing that>> against the button's URL. Theoretically I could override
>> AjaxFormSubmitBehavior's onEvent method, but that doesn't work
>> for ajax>> buttons, which build their own AjaxFormSubmitBehavior.
>> On one of my current projects the customer is quite security-
>> minded and>> would like the application to block these GET requests. My
>> question is: Is>> it intentional that only the regular onFormSubmitted()
>> checks this?>> If yes, I'd like to know the reasoning please. If not, I'm
>> going to
>> write a>> patch to fix this.
>> Or maybe I'm missing something and am going the wrong way
>> entirely. In>> that case, let me know please.
> Regards - Ernesto Reinaldo Barreiro