Spring Security 3 - Как настроить параметры имени пользователя и пароля? - PullRequest
7 голосов
/ 20 марта 2010

Как настроить свойства UsernamePasswordAuthenticationFilter usernameParameter (j_username) и passwordParameter (j_password) при использовании пространства имен <http ... /> Spring Security 3? Я понимаю, что <http ... /> создает фильтр, но я не вижу, как его настроить.

Ответы [ 2 ]

4 голосов
/ 21 марта 2010

Вот решение, которое я создал на основе предложения axtavt:

Конфигурация пружины:

<beans:bean id="userPassAuthFilterBeanPostProcessor"
    class="com.my.package.UserPassAuthFilterBeanPostProcessor">
    <beans:property name="usernameParameter" value="username" />
    <beans:property name="passwordParameter" value="password" />
</beans:bean>

Java класс:

package com.my.package;

import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.security.web.authentication.
    UsernamePasswordAuthenticationFilter;

public class UserPassAuthFilterBeanPostProcessor implements BeanPostProcessor {

    private String usernameParameter;
    private String passwordParameter;

    @Override
    public final Object postProcessAfterInitialization(final Object bean,
        final String beanName) {
        return bean;
    }

    @Override
    public final Object postProcessBeforeInitialization(final Object bean,
        final String beanName) {
        if (bean instanceof UsernamePasswordAuthenticationFilter) {
            final UsernamePasswordAuthenticationFilter filter =
                (UsernamePasswordAuthenticationFilter) bean;
            filter.setUsernameParameter(getUsernameParameter());
            filter.setPasswordParameter(getPasswordParameter());
        }

        return bean;
    }

    public final void setUsernameParameter(final String usernameParameter) {
        this.usernameParameter = usernameParameter;
    }

    public final String getUsernameParameter() {
        return usernameParameter;
    }

    public final void setPasswordParameter(final String passwordParameter) {
        this.passwordParameter = passwordParameter;
    }

    public final String getPasswordParameter() {
        return passwordParameter;
    }

}
1 голос
/ 20 марта 2010

Фильтр сконфигурирован с использованием элемента form-login , но этот элемент не обеспечивает возможность задания пользовательских имен для имени пользователя и пароля.

Вы можете настроить напрямую, как описано в Spring Reference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...