Защита калитки от поддельных запросов - PullRequest
2 голосов
/ 19 июля 2011

Если я скрываю и отключаю форму Wicket, нужно ли мне дважды проверять условия видимости в моем onSubmit? (Так же, как мы делаем в проверке JS по сравнению с проверками сервера?)

Рассмотрим этот фрагмент калитки:

public class TestPage extends WebPage {
    public TestPage() {
        boolean editable = checkIfUserCanEdit();
        add(new TestForm()
                .setEditable(false)
                .setVisible(false));
    }
}
public static class TestForm {
    ...
    public void onSubmit() {
        if (!checkIfUserCanEdit()) abort(); // Is this necessary?
        ...
    }
}

Нужна ли мне «повторная проверка» в моем onSubmit?

1 Ответ

2 голосов
/ 19 июля 2011

Глядя на иерархию вызовов onSubmit(), можно встретить

protected void delegateSubmit(IFormSubmitter submittingComponent)
[...]
    public void component(Form<?> form, IVisit<Void> visit)
    {
        if (form.isEnabledInHierarchy() && form.isVisibleInHierarchy())
        {
            form.onSubmit();
        }
    }
[...]

Учитывая, что я бы сказал, не нужно больше защищать.

...