right, so remove that code since you have replaced that component with
pure markup.

-igor

On Mon, May 25, 2009 at 8:48 AM, Jörn Zaefferer
<joern.zaeffe...@googlemail.com> wrote:
> That was the idea. But Wicket still can't find the component markup
> when looking for it. The form adds this elsewhere:
>
> add(new HiddenField<String>("csrf-protection", new
> Model<String>(csrfProtection())).setRequired(true).add(new
> IValidator<String>() {
>        public void validate(IValidatable<String> validatable) {
>                log.warn("potential csrf attack, submitted value: " +
> validatable.getValue() + ", expected: " + csrfProtection());
>                validatable.error(new ValidationError().setMessage("wrong csrf
> protection cookie"));
>        }
> }));
>
> Jörn
>
> On Mon, May 25, 2009 at 5:44 PM, Igor Vaynberg <igor.vaynb...@gmail.com> 
> wrote:
>> if you write it out in oncomponenttagbody then you dont need it in the
>> markupo anymore.
>>
>> -igor
>>
>> On Mon, May 25, 2009 at 6:32 AM, Jörn Zaefferer
>> <joern.zaeffe...@googlemail.com> wrote:
>>> Hi,
>>>
>>> my application uses a form subclass everywhere for CSRF protection.
>>> Each form needs a hidden field like this: <input type="hidden"
>>> wicket:id="csrf-protection" />
>>> The wicket component for that is added by the form subclass
>>> (SecureForm) which all other forms in the application extend.
>>>
>>> Currently each form has to include that markup somewhere, producing a
>>> lot of duplication.
>>>
>>> I'm looking for a way to get rid of that duplication. An approach I'm
>>> currently investigating is to generate the markup, similar to how Form
>>> genrates a hidden input it its onComponentTagBody:
>>>
>>> @Override
>>> protected void onComponentTagBody(MarkupStream markupStream,
>>> ComponentTag openTag) {
>>>        String nameAndId = get("csrf-protection").getId();
>>>        AppendingStringBuffer buffer = new AppendingStringBuffer(
>>>        "<input type=\"hidden\" name=\"").append(nameAndId).append("\" />");
>>>        getResponse().write(buffer);
>>>        super.onComponentTagBody(markupStream, openTag);
>>> }
>>>
>>> That doesn't work, Wicket throws an exception of a missing reference
>>> in markup anyway. Likely because this just writes to the response, not
>>> extending the markup.
>>> I also don't see any way to achieve this via MarkupStream or ComponentTag.
>>>
>>> Any ideas?
>>>
>>> Regards
>>> Jörn Zaefferer
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to