Java と Spring を使用して Web サイトを開発しています。サーバーとして、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_マルタ