我正在尝试解决 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。
任何帮助将不胜感激。
问候卢卡斯