2011-12-28 5 views
4

인증 용 스프링 보안을 사용하고 있습니다. 인증이 잘 작동합니다. 인증 후에는 봄 보안 구성 파일에서 기본 대상 URL을 사용하여 언급 한 html로 리디렉션되지 않습니다. 나는 간단한 메시지를 받고있다 성공. 구성된 html 페이지는 아닙니다. 리디렉션을 위해 아래 라인을 추가했습니다.봄이 기본 대상 URL로 리디렉션되지 않습니까?

<form-login login-page="/login.jsp" default-target-url="/welcome.html"/> 

구성 할 항목이 없습니다.

감사합니다.

답변

13

보호 된 리소스를 요청한 후 사용자가 로그인 페이지로 전송되면 로그인 성공 후 원래 요청한 페이지로 전송됩니다. default-target-url은 보호 된 리소스를 먼저 요청하지 않고 사용자가 로그인 한 경우 (즉 로그인 페이지로 직접 이동 한 경우)에만 사용됩니다. 당신은 항상 기본 대상-URL로 이동하려는 경우

<form-login login-page="/login.jsp" 
      default-target-url="/welcome.html" 
      always-use-default-target="true"/> 
+0

그게 문제입니다. 로그인 성공 후 default-target-url 만 있어도 /FAVICON.ICO를 이상하게 여깁니다. –

+0

그게 내가 찾고 있던;) –

2

브라우저가 인증 된 세션을 필요로하는 자원을 요청하면 여기에 흥미로운 잡았다는 아래의 예와 같이 = "true"를 always-use-default-target를 지정할 수 있습니다 - 예. 사용자가 로그인해야하는 javascript 파일을 요청하면 스프링 또는 web.xml에서 구성된 오류 페이지가 사용자에게 리디렉션되는 경우 사용자가이를 알 수 없지만 403 오류가 발생합니다. 사용자가 로그인 않는 경우

그런 다음 마지막 일 스프링 요청한 사용자가 오류 페이지이고

0

내가 아는 당신이 봄에서 구성 할 정도로 사용자가 오류 페이지로 이동이 아닌 기본 페이지됩니다 생각 이것은 다소 오래된 질문이지만, 일부 사용자는이 문제를 지금 당장 가지고있을 수 있습니다.

  1. welcome.html 페이지 (컨텍스트 경로 기준)에 액세스 할 수 있는지 확인하십시오. intercept-url을 삭제하거나 로그인 한 후 바로 액세스 할 수 있습니다.
  2. always-use-default-target="true"
  3. 세션 관리를 지정한 경우 먼저 invalid-session-url으로 리디렉션되지 않았는지 확인하십시오.
0

이미지에서 알 수 있듯이 나쁜 디자인 (IMO는 항상 the default-target-url으로 리디렉션되어야 함)이 있습니다. 금지 된 리소스에서 로그인 URL로 이동하면 해당 URL로 리디렉션되고 default-target-url을 통과하지 않습니다. 그냥 always-use-default-target="true"을 사용하고 내가 비슷한 문제를 가지고 있었고, 대답보다 나에게 힌트를 준

http://i.stack.imgur.com/fj9ou.png

0

욕망 행동을해야합니다,하지만 난 자바 클래스 다음에서 직접 CONFIGS을 사용하고 있기 때문에 나를 도와 :

docs.spring.io에서 찾을 수 있습니다

defaultSuccessUrl (문자열 defaultSuccessUrl, 부울 alwaysUse를)

따라서 w 암탉

.defaultSuccessUrl("/home", true) 

문제가 해결되었다에

.defaultSuccessUrl("/home") 

변경.

관련 문제