GWT и SpringSecurity - PullRequest
       3

GWT и SpringSecurity

2 голосов
/ 09 февраля 2011

Я создал два модуля

  1. GWTAppAuth
  2. GWTApp

, когда я пытаюсь опубликовать форму с GWTAppAuth до j_spring_security_check ничего не произошло.

Firebug показывает в консоли

"Failed to load source for:http://127.0.0.1:8888/j_spring_security_check"

Но если я попытаюсь после этого вручную получить доступ к GWTApp, это сработает.Кто-нибудь знает в чем дело?

Похоже, Spring Security просто не перенаправляет на секунду (GWTApp).
Как это проверить?

  1. Запуск приложения в режиме хоста
  2. Попытка доступа к GWTApp.html
  3. Spring Security перенаправляет меня на GWTAppAuth.html
  4. Нажмите кнопку входа

В этом месте, если мы проверим журнал firebug, мы увидим

"POST //127.0.0.1:8888/j_spring_security_check"

и ответ -

"Failed to load source for: http://127.0.0.1:8888/j_spring_security_check"

затем следующая запись -

"GET //127.0.0.1:8888/GWT/GWTApp.html?gwt.codesvr=127.0.0.1:9997"

и получение всех необходимых ресурсов
Теперь я могу вручную ввести

"//127.0.0.1:8888/GWT/GWTApp.html" 

и теперь у меня есть доступ к GWTApp.html

Ответы [ 2 ]

4 голосов
/ 27 октября 2011

Я нашел решение.
Вы должны использовать HTML-форму и кнопку отправки вместо виджетов, предоставленных GWT например:

<form action="/j_spring_security_check" method="post">
   <g:Label>
       login
   </g:Label>
   <g:TextBox name="j_username" width="200" />
       <g:Label>
           password
       </g:Label>
       <g:PasswordTextBox name="j_password" width="200" />
       <input name="submit" type="submit" value="Login" />
</form>

или отправьте заполненное событие, если вы используете виджет GWT FormPanel:

public class LoginFormB extends Composite {

  private static LoginFormBUiBinder uiBinder = GWT.create(LoginFormBUiBinder.class);

  interface LoginFormBUiBinder extends UiBinder<Widget, LoginFormB> {}

  @UiField
  FormPanel formPanel;

  public LoginFormB() {
    formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {

        @Override
        public void onSubmitComplete(SubmitCompleteEvent arg0) {
            // Redirect to needed page
            redirect("needed url");
        }
    });
    initWidget(uiBinder.createAndBindUi(this));
  }

  public static native void redirect(String url)/*-{
    $wnd.location = url;
  }-*/;
}
0 голосов
/ 23 февраля 2011

Не думаю, что вы можете напрямую интегрировать Spring Security и GWT в одно приложение.Вам нужно что-то промежуточное, чтобы склеить их.

Попробуйте проверить следующие уроки: http://krams915.blogspot.com/2011/01/spring-and-gwt-integration-using-maven.html

http://krams915.blogspot.com/2011/01/spring-and-gwt-security-via-spring.html

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