2013-06-21 38 views
0

假设我有/admin/login网站。用户想要转到/admin安全站点(需要登录)。 Spring安全性询问用户有关信用状况,登录后用户被重定向到default-target-url。接下来他尝试去/admin并再次登录窗体。哪里不对?Constat重定向到登录网站

窗台需要登录网站,我无法进入网站。

配置

<security:http auto-config="true" use-expressions="true"> 
     <security:intercept-url pattern="/admin/*" access="hasRole('ROLE_ADMIN')"/> 
     <security:form-login default-target-url="/succes"/> 
     <security:session-management/> 
    </security:http> 

    <bean id="service" class="com.springapp.mvc.dao.HibernateService"/> 

    <bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl"/> 

    <bean id="saltSource" class="org.springframework.security.authentication.dao.ReflectionSaltSource"> 
     <property name="userPropertyToUse" value="username"></property> 
    </bean> 

    <bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.Md5PasswordEncoder"/> 

<security:authentication-manager> 
     <security:authentication-provider user-service-ref="service"> 
      <security:password-encoder hash="md5"> 
       <security:salt-source ref="saltSource"/> 
      </security:password-encoder> 
     </security:authentication-provider> 
    </security:authentication-manager> 
+0

我不明白你的问题。你想让用户在'/ admin'登录吗? – LaurentG

+0

@LaurentG我想知道为什么通过表单成功自动化后,我无法进入'/ admin'网站,因为它需要信用。 – user902691

+0

在这种情况下,请向我们展示您的Spring Security XML配置。 – LaurentG

回答

0

它真的很有趣,起初我无法重现,因为它是在正常的环境中工作对我罚款,但我能够重现在浏览器中禁用Cookie的问题。

所以解决的办法是

你只需要启用浏览器的Cookie,当你登录最初它允许你并通过你向一个目标之后,当URL(这是不是在你的情况下,安全)您尝试去/admin/somepage它会再次要求凭据,因为会话未被跟踪。

我希望你知道浏览器如何处理会话跟踪的cookie和url重写。

注意:这似乎只是一个问题,因为我能够重现,如果这不是你的情况,你需要共享你的控制器和步骤来重现问题。