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 文件有 si HTML 表单元素<form action="/login">

我有两个 Spring 处理程序,它们重定向到 Login.html 或 MyApplication.html(内容、服务)取决于用户是否进行身份验证。

如果我将我的应用程序打包到 vsp.war (localhost:8080/vsp/) 并运行它,它会转到 Login.html,这是正确的。但是,无论我是否进行身份验证,它总是以 404 状态进入 localhost:8080/login。

我最终的 WAR 结构是:

  • 登录
    • login.nocache.js
  • VSSP
    • vsp.nocache.js
  • 登录.html
  • 我的应用程序.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。

任何帮助将不胜感激。

问候卢卡斯

4

1 回答 1

0

问题解决了。我已经使用 /login 来进行 Spring 安全登录,还使用 ​​Login.gwt.xml、Login.java 来处理 GWT 部件。正确的 URL 存在问题。当我将 Spring 安全登录更改为不同的 (/differLogin) 时,everythinkg 在托管和 Web 模式下都可以正常工作。

于 2013-02-22T12:09:00.750 回答