Java spring安全登录中的无限循环

Java spring安全登录中的无限循环,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有一个SpringMVC3.1.0Web应用程序,我第一次实现了SpringSecurity secure config.xml: <http> <intercept-url pattern="/lhome" access="ROLE_USER" /> <access-denied-handler error-page="/WEB-INF/views/403.jsp"/> <form-login login-page=

我有一个SpringMVC3.1.0Web应用程序,我第一次实现了SpringSecurity

secure config.xml:

<http>
    <intercept-url pattern="/lhome" access="ROLE_USER" />  

    <access-denied-handler error-page="/WEB-INF/views/403.jsp"/> 

    <form-login login-page="/login" default-target-url="/home" authentication-failure-url="/login.jsp" always-use-default-target="true"/>

    <anonymous username="guest" granted-authority="ROLE_GUEST" />

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

<authentication-manager alias="authenticationManager" >
    <authentication-provider user-service-ref="customMongoSecurityService" />
</authentication-manager>

我使用的是基于AJAX的登录。当我给出正确的凭证或点击
/lhome
时,它会重定向到
/login
页面,而不是主页


如何解决此问题?

一旦Spring授予您访问权限,它将使用会话密钥返回您的请求。您需要为后续请求携带会话密钥

或者您可以将Spring配置为使用http basic

 <http>
     ...
     <http-basic/>
 </http>

...

通过这种方式,您必须为每个请求发送用户名和密码(公共网站不太安全)。

请提供日志。我想我很抱歉!但我是在问为什么要创建循环我对你的问题的理解是,在第一次请求中发送了正确的凭据之后,你仍然会在第二次请求中被重新定向到登录页面,这使你认为你陷入了循环中。这就是为什么后续请求必须携带会话密钥或凭据的原因。希望我的理解是正确的。我认为,这是一个web应用程序(页面和AJAX),而不是一个外部API(web服务)。浏览器应该在请求之间自动携带会话ID。问题似乎已经解决。我没有使用限定符来指定AuthenticationManager类的别名。谢谢