2013-02-21 79 views
0

我正在嘗試解決GWT中的URL登錄問題。我們正在使用彈簧安全。問題是,所有的東西都在開發模式下工作,但是在Tomcat中以WAR的形式構建時失敗了。使用Spring的GWT登錄 - URL問題

應用程序上下文的security.xml seetings:

<form-login authentication-success-handler-ref="mySuccessHandler" authentication-failure-handler-ref="myFailureHandler" login-processing-url="/login" /> 

我有我自己的login.html文件中有SI HTML表單元素<form action="/login">

我有兩個春天處理其重定向到的login.html或MyApplication.html(內容,服務)取決於用戶是否認證。

如果我將我的應用程序打包到vsp.war(localhost:8080/vsp /)並運行它,它會轉到Login.html,這是正確的。但是,如果我進行身份驗證,它總是會進入localhost:8080 /登錄狀態爲404。

我的最終WAR結構爲:

  • 登錄
    • login.nocache.js
  • VSP
    • vsp.nocache.js
  • 登錄。 html
  • MyApplication.html

我有一個登錄名和應用(服務)的其餘兩個模塊。失敗的認證處理方法的

例子:

@Override 
public void onAuthenticationFailure(HttpServletRequest request, 
     HttpServletResponse response, AuthenticationException exception) 
     throws IOException, ServletException { 

    // always send HTTP 403 
    response.setStatus(HttpServletResponse.SC_FORBIDDEN); 
    final StringBuilder URL = new StringBuilder("Login.html?"); 
    if(!GWT.isProdMode()) { 
     URL.append("gwt.codesvr=127.0.0.1:9997&"); 
    } 
    URL.append("error=true"); 
    response.sendRedirect(URL.toString()); 

} 

任何人可以幫助我在哪裏,我在做錯誤?問題是如果必須有/Login.html或Login.html ot/login或其他不同的東西,我不明白URL。

任何幫助將不勝感激。

關注Lukas

+0

請問ypu可以顯示你的登錄servlet如何映射到web.xml中? – 2013-02-21 10:49:26

+0

我沒有在web.xml中關於登錄任何東西,僅僅只有春季安全: \t \t springSecurityFilterChain \t \t <過濾器類> org.springframework.web.filter。的DelegatingFilterProxy \t \t <濾波器映射> \t \t springSecurityFilterChain \t \t /* \t Gondri 2013-02-21 12:27:04

回答

0

問題解決了。我已經使用/登錄Spring安全登錄,還使用了Login.gwt.xml,用於GWT部分的Login.java。並且正確的URL存在問題。當我將Spring安全登錄更改爲不同的(/不同登錄)時,everythinkg可以在託管和Web模式下正常工作。