Spring Security 401 ошибка с пользовательским фильтром аутентификации - PullRequest
3 голосов
/ 24 марта 2011

Мы разрабатываем сайт с использованием 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_Malta

1 Ответ

1 голос
/ 24 марта 2011

В качестве сервера мы используем пользовательский сервер на основе Tomcat 6.0.29.

Сначала необходимо проверить, связана ли проблема с конфигурацией вашего сервера Tomcat (например, настроена ли проверка подлинности Tomcat, ожидает ли вы предоставления сертификата клиента (clientAuth="true" в вашемКонфигурация сервера Tomcat) и т. Д.

Если вы можете убедиться, что элемент управления проходит или не проходит первоначальную аутентификацию Tomcat в Spring Security, тогда может быть другое решение. Вы не предоставили нам всесоответствующий код, но похоже, что код проверяет наличие дополнительного параметра формы, который должен быть передан вместе с запросом аутентификации. Это будет определено в константе WebConstants.PARAM_J__TYPE.

...