Интеграция безопасности GWT и Spring с помощью пользовательского диалога входа - PullRequest
2 голосов
/ 04 марта 2012

У меня есть приложение GWT, и я хочу защитить его с помощью Spring Security.У меня есть собственное всплывающее окно, в котором размещается формуляр для входа в систему на основе пользовательского интерфейса Binder.Я хочу отправить учетные данные на сервер, используя методы RPC, а затем аутентифицировать пользователя по БД.Это возможно?

1 Ответ

2 голосов
/ 05 марта 2012

Да, это возможно, но вы должны учитывать, что приложение GWT скомпилировано в javascript и отправлено клиенту как полный пакет.Таким образом, доступ к «статическим» местам, которые не извлекают данные с сервера, не может быть ограничен с помощью SI, поскольку вся информация доступна на стороне клиента с самого начала.Однако все службы фабрики запросов (или другой используемый вами протокол) могут быть защищены с помощью Spring Security.Если вы используете фабрику запросов, вам нужно сделать пару вещей:

  1. Реализовать механизм безопасности, как и в любом другом приложении, использующем Spring Security - вы должны предоставить конечную точку j_spring_security_check, позволяющую пользователю аутентифицироваться и добавлять соответствующие аннотации SIна уровне служб (если для этого требуются параметры аутентификации / авторизации)
  2. Переопределить Метод DefaultRequestTransport createRequestCallback(RequestTransport.TransportReceiver receiver), чтобы иметь возможность обрабатывать ответы сервера 403/401.
  3. Введите страницу входа, которая отправляет предоставленные пользователем учетные данные на j_spring_security_check.Вы можете легко использовать GWT RequestBuilder .

Вот и все!

Редактировать: Конечно, Spring должен знать об услугах, которые вы защищаете (должен существовать)в своем контейнере).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...