2012-02-23 1 views
2

У меня есть веб-приложение GWT + Spring Security. Я пытался добавить:GWT - весна безопасности - тайм-аут сеанса

<security:session-management invalid-session-url="/X.html"/> 

Однако, когда я пытаюсь проверить это. Кажется, я вижу:

com.google.gwt.user.client.rpc.InvocationException 

с сообщением как HTML-содержимое X.html. Может кто-нибудь, пожалуйста, посоветуйте, как это исправить?

+0

Что вы ожидали увидеть ? GWT взаимодействует с сервером через вызовы ajax RPC, он не перенаправляет ваш браузер на X.html. – Strelok

+0

Я действительно ожидал перенаправления на страницу входа в систему - например, X.html – ankurvsoni

ответ

1

Поскольку GWT связывается с сервером с помощью запросов Ajax RPC, браузер не будет перенаправлен на X.html. То, что вам нужно делать в ваших служебных вызовах, - это исключение, если они не авторизованы и обрабатываются в методе void onFailure(Throwable caught) вашего AsyncCallback.

+0

Знаете ли вы, почему сообщение InvocationException - это html-содержимое X.html, когда GWT выполняет запрос Ajax RPC? – ankurvsoni

1

Если вы хотите перенаправлять /X.html попробовать:

Window.Location.replace(GWT.getHostPageBaseURL()+"X.html"); 

Однако, если вы хотите, чтобы отправить запрос на использование сервера RequestBuilder:

String url = GWT.getHostPageBaseURL() + "/X.html"; 

RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); 

try { 
    Request request = builder.sendRequest(null, new RequestCallback() { 
    public void onError(Request request, Throwable exception) { 
     // invalid request 
    } 

    public void onResponseReceived(Request request, Response response) { 
     if (200 == response.getStatusCode()) { 
      // success 
     } else { 
      // sth went wrong 
     } 
    } 
}); 
} catch (RequestException e) { 
    // couldn't connect to server 
}