Я пишу веб-приложение, используя Struts и Hibernate. Недавно я обнаружил GWT и API визуализации. Все это выглядело очень интересно и предоставляет функции AJAX, которые нужны моему приложению. Я новичок, который совсем запутался....
Где размещать проверки уровня доступа к данным?
В веб-приложении пользователи имеют разный уровень доступа к данным. например разные комбинации прав чтения/записи для разных данных. Будет какой-то профиль пользователя, который приложение проверяет при доступе к каким-либо данным или их изменении. Пользователю будет предоставлен доступ к данным в соответствии с результатом - отказано в доступе к просмотру или он может видеть данные, но не может их изменить и т. д. Я не уверен, где поставить эту конкретную проверку. Я думаю, я мог бы закодировать это в DAO, каждый раз, когда обрабатывается операция с данными, вручную проверять запрошенные данные по профилю. Или поместите его на уровень бизнес-логики/отображения, если у пользователя нет права доступа к данным, уберите кнопку у пользователя. Или оба? Или есть файл конфигурации в спящем режиме, где я могу указать права доступа к данным для всех сопоставленных таблиц?
Лучшая практика для передачи информации
Существует большая потребность в обмене данными между моделью/представлением/контроллером, вызовом RPC для GWT и передачей данных в код визуализации для отображения диаграмм и прочего. Я предполагаю, что ему определенно нужен какой-то переводчик, который преобразует объекты Java в объекты JSON, чтобы выполнять вызовы gwt-rpc и рисовать диаграммы с помощью API визуализации. Я прав? Кроме того, с точки зрения передачи информации в Struts и Hiberante — является ли хорошей идеей создание объектов передачи данных? Тогда просто передавать бобы все время? Или (я только что наткнулся на это сегодня ... даже не уверен, правильно ли я это понял), возможно, привязать объекты к JNDI и получить к ним доступ из других частей программы?
Мы будем признательны за любые комментарии/разъяснения. Большое спасибо!