我正在研究一个Spring安全项目,如果用户插入了错误的userId-密码,网页将更新为“ Invalid Login Attempt”消息。
我正在AuthenticationFailureHandler.onAuthenticationFailure上发送重定向
onAuthenticationFailure()实现的代码段。
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) throws IOException, ServletException {
//some logic
response.sendRedirect(String.format("%s?error", getUrl());
}
}
资源HTML页面具有带有百里香依赖性的div标签,以识别error
对象并显示消息
<div th:if="${error}" id="loginFailedMessage" class="alert alert-danger">
Invalid login attempt.
</div>
到目前为止,该实现可在Jboss应用服务器和WebLogic应用服务器上运行-但是,当不适用于Websphere 时。 WebSphere是否阻止了此类URL调用是有原因的-我缺少任何配置。我已经厌倦了不同版本的WebSphere 8.5.5.9到8.5.5.13
ps。 ffdc或应用程序日志中没有错误。
答案 0 :(得分:0)
解决方案是在网址中使用error=true
。由于某些原因,websphere不允许在不分配值的情况下使用url参数。
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) throws IOException, ServletException {
//some logic
response.sendRedirect(String.format("%s?error=true", getUrl());
}
}