2012-03-04 3 views
2

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

ответ

2

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

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

Вот и все!

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

+1

Итак, если я хорошо понимаю, мне нужно отправить учетные данные в/appName/j_spring_security_check URL и использовать @Secured аннотацию для защиты вызовов RPC? – Peter

+0

Правильно! Таким образом, вся информация, доступ к которой ограничена, должна храниться на стороне сервера и экспонироваться службами - вы не можете «жестко закодировать» ее в javascript. –

Смежные вопросы