GWT и аутентификация

Каковы наилучшие стратегии для обеспечения безопасности вашего приложения GWT + Tomcat для выполнения проверки подлинности и авторизации?

Ответы

Ответ 1

Существуют две основные стратегии:

  • защищать точки входа;
  • защищать удаленные службы.

Защита точек входа

Самый простой способ - ограничить доступ к файлам html/js, сгенерированным GWT, с помощью обычных инструментов безопасности веб-приложений:

  • Spring Безопасность;
  • ограничения web.xml.

Это может позволить вам иметь, например, AdminEntryPoint и UserEntryPoint.

Защита удаленных служб

Если вышеуказанного решения недостаточно, вы можете копать глубже. Я сделал это с помощью Spring Безопасность. Я не нашел 100% -ный чистый способ интеграции Spring Безопасность с GWT, поэтому я добавил немного клея. Вкратце:

  • создал аннотацию @AllowedRoles, которая перечисляет роли пользователей, которым разрешен доступ к этому сервисному методу;
  • создан UserDetailsService, который позволяет проверять текущего пользователя (подробнее см. securityContextHolder javadoc);
  • создал аспект Spring, который соответствует всем методам, аннотированным с аннотацией, указанной выше. Он использует службу для извлечения ролей текущего пользователя и выбрасывает исключенное исключение, чтобы сигнализировать о незаконном доступе;
  • изменил все методы обслуживания, чтобы выбросить исключение безопасности.