Форма входа в систему безопасности весной не работает

У меня проблема с Spring Security в форме входа в систему: они не могут найти URL входа, даже если я укажу им путь

<form-login login-page="/login"  default-target-url="/index"  />

когда я выполняю браузер дает :\ :

Cette page Web présente und boucle de redirection.

Английский перевод выше, чтобы помочь отладке:

This web page has a redirect loop.

это контроллер:

@Controller
public class LoginController{

            @RequestMapping("/login")
            public String doLogin() {
                return "login";
            }
}

это spring-security.xml

<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                        http://www.springframework.org/schema/security
                        http://www.springframework.org/schema/security/spring-security-3.1.xsd
                        http://www.springframework.org/schema/tx
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd 
                        http://www.springframework.org/schema/tx/spring-tx.xsd" >
        <http pattern="/images/**" security="none"/>
        <http pattern="/styles/**" security="none"/>
        <http pattern="/js/**" security="none"/>
        <http pattern="/login" security="none" />

        <http  auto-config="true" use-expressions="true">
                <intercept-url pattern="/**" access="isAuthenticated()"/>
                <form-login login-page="/login.jsp"  default-target-url="/index" authentication-failure-url="/login"  /> 

                <logout logout-url="/logout" logout-success-url="/index"/>
        </http>

        <beans:bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
            <beans:property name="userDetailsService" ref="userDetailsService" ></beans:property>

        </beans:bean>
        <beans:bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">
        <beans:property name="providers">
                    <beans:list>
                    <beans:ref local="daoAuthenticationProvider"/>
                    </beans:list>
        </beans:property>
        </beans:bean>
        <beans:bean  id="userDetailsService" class="com.UserDetailsServiceImpl"></beans:bean>
        <authentication-manager>        
                    <authentication-provider user-service-ref="userDetailsService">
                            <password-encoder hash="md5"></password-encoder>
                    </authentication-provider>
        </authentication-manager>
</beans:beans>

1 ответ

РЕДАКТИРОВАТЬ 1: на основе пользовательского ввода

Измените следующую строку

<intercept-url pattern="/**" access="isAuthenticated()"/>

к чему-то в этом роде

или же

<intercept-url pattern="/**" access="hasRole('USER_ADMIN')"/>

По сути, исключаем isAuthenticated() из него, так как при чтении конфигураций XML мало кто сталкивался с проблемами.

Дайте мне знать, если это исправит.

Дополнительные примеры: Spring Security не будет перенаправлять на URL-адрес перехвата

Другие вопросы по тегам