Лучшая практика защиты приложений 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.
прочитай это
удобно управлять всем этим (например, весной, используя аннотации или что-то вроде этого)
Как видите, многие из этих концепций безопасности используют аннотации и другие материалы для простого управления вашим приложением.