Лучшая практика защиты приложений GWTP

Я работаю над приложением, используя платформу GWT, и теперь я хочу добавить часть безопасности. Какова лучшая практика, чтобы сделать это? Мои требования к безопасности:

  • наличие полномочий пользователя;
  • скрыть некоторые места от пользователей без необходимых полномочий;
  • скрыть некоторые элементы на странице от пользователей без необходимых полномочий;
  • защитить серверную часть от несанкционированных запросов;
  • удобно управлять всем этим (например, весной, используя аннотации или что-то вроде этого)

1 ответ

Решение

наличие полномочий пользователя;

Моделируйте своих пользователей с разрешением, например,

 private int user_type;

скрыть некоторые места от пользователей без необходимых полномочий;

Используйте концепцию Gate Keeper

Gate Keeper - это Singleton, который обязывает вас наследовать метод

boolean canReveal()

Используя это, вы можете позвонить на сервер и найти разрешение пользователя, а затем показать или нет докладчик вызвал.

Если докладчику нужна безопасность, просто добавьте @UseGateKeeper в интерфейс Proxy, например:

SomePresenter extends Presenter<V,P>{
       @UseGateKeeper(YourGateKeeper.class)
       SomePresenterProxy extends ProxyPlace{}
}

Это заблокирует пользователей без разрешения на доступ к докладчику.

скрыть некоторые элементы на странице от пользователей без необходимых полномочий;

Хороший вопрос, я никогда не видел такой тип безопасности в проектах GWTP. Но вы всегда можете использовать Widget.setVisible(false);D, но я не знаю, есть ли у gwtp хорошая практика для этого.

защитить серверную часть от несанкционированных запросов;

GWTP GWTP позволяет связать каждого из ваших ActionHandlers с серверным ActionValidator, который определяет, может ли текущий клиент выполнить действие

Вы можете скрыть некоторые серверные вызовы, используя ActionValidator.

прочитай это

удобно управлять всем этим (например, весной, используя аннотации или что-то вроде этого)

Как видите, многие из этих концепций безопасности используют аннотации и другие материалы для простого управления вашим приложением.

Другие вопросы по тегам