Как включить безопасность Spring с использованием открытого идентификатора в проект GWT - PullRequest
1 голос
/ 03 марта 2010

Ну, это просто, в основном я хочу следовать парадигме 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());
            }

        });

соответствующий вывод: При отправке вызвано ложное При отправке завершено, вызвано null

Как я понимаю, полученный html равен нулю. Как еще мне это сделать? GWT 1.5 не имеет простой формы (которая действительно обновляет страницу при отправке) и тега ввода с типом отправки. Должен ли я жестко запрограммировать это в HTML-виджет? Я попытался установить другой фрейм в качестве цели этой панели форм, но все еще не смог получить никаких плодотворных результатов.

1 Ответ

0 голосов
/ 03 марта 2010

Насколько я могу судить, вы не устанавливаете правильный URL для загрузки:

formPanel.setAction(uploadServiceUrl);

/**
   * Sets the 'action' associated with this form. This is the URL to which it
   * will be submitted.
   * 
   * @param url the form's action
   */
  public void setAction(String url) {
    getFormElement().setAction(url);
  }
...