0

GWT での URL ログインの問題を解決しようとしています。スプリングセキュリティを使用しています。問題は、すべてが開発モードで機能していることですが、WAR としてビルドされた tomcat では失敗します。

application-context-security.xml 設定:

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

私は独自のlogin.htmlファイルを持っており、そこにHTMLフォーム要素があります<form action="/login">

ユーザーが認証するかどうかに応じて、Login.html または MyApplication.html (コンテンツ、サービス) にリダイレクトする 2 つの Spring ハンドラーがあります。

アプリケーションを vsp.war (localhost:8080/vsp/) にパックして実行すると、正しい Login.html に移動します。ただし、認証するかどうかにかかわらず、常に localhost:8080/login に 404 ステータスで移動します。

私の最終的なWAR構造は次のとおりです。

  • ログインする
    • login.nocache.js
  • vsp
    • vsp.nocache.js
  • ログイン.html
  • MyApplication.html

ログイン用と残りのアプリケーション (サービス) 用の 2 つのモジュールがあります。

失敗認証ハンドラー メソッドの例:

@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 または /login または別のものが存在する必要がある場合、URL を理解できないことです。

どんな助けでも大歓迎です。

よろしくルーカス

4

1 に答える 1

0

問題が解決しました。Springセキュリティログインに/loginを使用しましたが、GWTパーツにはLogin.gwt.xml、Login.javaも使用しました。そして、正しいURLに問題がありました。Springセキュリティログインを別のもの(/ differentLogin)に変更すると、ホストモードとWebモードでeverythinkgが正常に機能します。

于 2013-02-22T12:09:00.750 に答える