Что ж, это просто, в основном я хочу следовать парадигме GWT «Одна страница» и все же интегрировать безопасность Spring в приложение. Насколько я понимаю, если файл cookie не найден в системе, spring перенаправит пользователя на страницу реферера Open id с запросом входа в систему, иначе он просто отправит моему серверу идентификатор открытого URL-адреса пользователя.
Вот что я использую в GWT:
final FormPanel formPanel = new FormPanel();
RootPanel.get("openId").add(formPanel);
VerticalPanel openIdContainer = new VerticalPanel();
formPanel.add(openIdContainer);
TextBox url = new TextBox();
url.setText("https://www.google.com/accounts/o8/id");
url.setName("j_username");
openIdContainer.add(url);
formPanel.setAction("j_spring_openid_security_check");
formPanel.setMethod(FormPanel.METHOD_POST);
Button btn = new Button("Open ID");
btn.addClickListener(new ClickListener() {
public void onClick(Widget sender)
{
formPanel.submit();
}
});
openIdContainer.add(btn);
formPanel.addFormHandler(new FormHandler() {
public void onSubmit(FormSubmitEvent event)
{
System.out.println("On Submit invoked " +event.isCancelled());
}
public void onSubmitComplete(FormSubmitCompleteEvent event)
{
System.out.println("On Submit Complete invoked " + event.toString());
}
});
соответствующий вывод: При отправке вызывается false При завершении отправки вызывается null
Насколько я понимаю, полученный html нулевой. Как еще мне это сделать? GWT 1.5 не имеет простой формы (которая действительно обновляет страницу при отправке) и тега ввода с типом как submit. Придется ли мне жестко закодировать это в виджет HTML? Я попытался установить другой фрейм в качестве цели этой панели формы, но все равно не смог добиться каких-либо плодотворных результатов.