У меня есть такой POJO в Google Web Toolkit, который я могу получить с сервера.
class Person implements Serializable {
String name;
Date creationDate;
}
Когда клиент вносит изменения, я сохраняю их обратно на сервер, используя GWT RemoteServiceServlet, например:
rpcService.saveObject(myPerson,...)
Проблема в том, что пользователь не может изменить creationDate
. Поскольку метод RPC на самом деле является просто HTTP POST для сервера, можно изменить creationDate
, изменив запрос POST.
Простым решением было бы создать серию функций RPC, таких как changeName(String newName)
и т. Д., Но при наличии класса с множеством полей потребуется много методов для каждого поля, и было бы неэффективно изменять сразу несколько полей.
Мне нравится простота наличия одного POJO, который я могу использовать как на сервере, так и на GWT-клиенте, но мне нужен способ сделать это безопасно. Есть идеи?
EDIT
Я повторно отправляю за вознаграждение, чтобы попытаться выяснить, есть ли другие идеи. Возможно, мой первоначальный вопрос был слишком сосредоточен на специфике GWT. Действительно, я думаю, что это общий вопрос для любой системы, которая использует JavaBeans для передачи данных между безопасной (контейнер сервлетов) и небезопасной (веб-браузер) средой.
РЕДАКТИРОВАТЬ 2
Также, для ясности, я использовал поле creationDate
в качестве примера проблемы. На самом деле код, с которым я работаю, более сложен со многими различными полями.