我们正在使用 Java 和 Spring 开发一个网站。作为服务器,我们使用基于 Tomcat 6.0.29 的自定义服务器。在 web.xml 文件中声明了这个自定义身份验证过滤器:
<security:custom-filter ref="extraFieldAuthenticationProvider"
before="FORM_LOGIN_FILTER"/>
以及以下内容:
<security:form-login login-page="/view/page/login"
default-target-url="/view/page/display"
authentication-failure-handler-ref="CustomAuthenticationFailureHandler"
authentication-success-handler-ref="CustomAuthenticationSuccessHandler"/>
以下是 extraFieldAuthenticationProvider 类:
public class ExtraFieldAuthenticationFilter
extends UsernamePasswordAuthenticationFilter {
private final static Logger LOG =
Logger.getLogger(ExtraFieldAuthenticationFilter.class.getName());
@Override
protected String obtainUsername(HttpServletRequest request) {
String userName = super.obtainUsername(request);
String type = request.getParameter(WebConstants.PARAM_J__TYPE);
return StringUtils.join(new String[]{type, userName});
}
}
问题是在登录失败时,我收到了 Tomcat 401 错误。没有给予控制权CustomAuthenticationFailureHandler
。
有什么想法吗?(bdw...我对Spring Security比较陌生,我正在调试另一个人的代码)
非常感谢!
Krt_马耳他