2014-07-08 1 views
0

나는 스프링 MVC 3.1.0 웹 애플리케이션을 가지고 있으며, 스프링 보안을 처음으로 구현하고있다.스프링 보안 로그인의 무한 루프

보안-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 페이지로 리디렉션됩니다.

어떻게 문제를 해결할 수 있습니까?

+0

로그를 보내주십시오. 나는 인증 failef – hutingung

답변

1

스프링이 액세스 권한을 부여하면 세션 키를 사용하여 요청을 반환합니다. 후속 요청을 위해 세션 키를 전달해야합니다.

아니면 봄이 방법에 의해 HTTP

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

기본을 사용하도록 구성 할 수 있습니다, 당신은 각 요청 (공공 웹 사이트에 대한 보안 수준)의 사용자 이름과 암호를 보내해야합니다.

+0

미안하다고 생각해! 하지만 왜 루프를 만들지 묻고 있었어 – user3497693

+0

질문에 대한 제 이해는 첫 번째 요청에서 올바른 자격 증명을 보낸 후에도 두 번째 요청의 로그인 페이지로 리디렉션되고 생각하면됩니다. 당신은 루프에 갇혀있다. 따라서 이후 요청에 대해서는 세션 키나 자격 증명을 가지고 있어야합니다. 내 이해가 정확하기를 바랍니다. –

+0

웹 응용 프로그램 (페이지 및 AJAX)이 아닌 외부 API (웹 서비스)라고 생각합니다. 브라우저는 자동으로 요청간에 세션 ID를 전달해야합니다. – Alexey