2011-11-07 3 views
0

모두스프링 보안 - 이상한 오류

내 웹 응용 프로그램 (Spring 3.0.6, Tiles 2.2)에 스프링 보안 (3.0.7)을 추가하려고합니다. < form-login/>은 예상대로 작동하지만 사용자 지정 사용자 지정을 만들 수 없습니다. 어떤 문제가 발생 : 사용자가 로그인 링크를 클릭

  1. 때마다, 로그인 페이지가 두 번 호출되는
  2. 사용자가 존재하지 않을 경우 UserDetailsService의 예외를 throw하지만, 예외가 어디 집어 결코 극복 사용되었습니다. 이로 인해 < 양식 로그인/>은 authentication-failure-url 대신에 로그인 페이지로 경로가 변경됩니다.
  3. 나쁜 사용자 이름으로 로그인 할 때 오류 메시지가 표시되지 않습니다 (위의 이전 문제로 인한 것일 수 있음).)
  4. 로그인이 성공하면 가끔 올바른 페이지가 열리 며, 다른 페이지에서는 페이지 내에서 참조 된 javascript 파일이 무작위로 열립니다.

나는 모든 자습서를 따라 왔으며 아무 것도 작동하지 않습니다. 누구든지 기본 로그인을 생성하는 클래스를 알고 있습니까? 아마 나는 소스 코드를보고 그들이 가지고있는 것을 모방 할 수있다.

누구나 이런 이상한 행동을 경험 했습니까?

답변

0

문제점 2 개를 파악했습니다. 다른 사람이 같은 일을 할 경우에 대비해 게시하고 있습니다.

# 1/# 4 : 사이트에서 타일을 사용 중이며 사이트 전체에 기본 HTML 헤더 블록이 사용되었습니다.

<html> 
<head> 
    <script src="foo.js" type="text/javascript"> 
</head> 

는 구성 explicilty은 로그인하지 않은 사용자를 위해이 자바 스크립트 파일을 차단.

<intercept-url pattern="foo.js" access="isAuthenticated()"/> 

을 사용자가 홈 페이지에 왔을 때, 사이트가 foo.js.을 제외하고로드합니다 foo.js의 메소드는 로그인하기 전에 호출되지 않으므로 모든 것이 잘 작동하는 것처럼 보입니다.

누군가가 로그인을 시도하면, 스프링 보안은 foo.js를 보여줄 첫 번째 보호 된 페이지로 간주하고 자동으로 열었습니다.

이로 인해 로그인 페이지가 두 번 호출되었습니다. 실제 로그인 링크에 대해 한 번, foo.js 파일에 대해 한 번.

+0

문제점 2와 3도 알 수있었습니다. 로그인 실패 페이지를 '허용'목록에 추가하는 것을 잊어 버렸기 때문에 항상 정규 로그인 페이지로 경로가 변경되었습니다. user973479