스프링 웹 서비스 용 스프링 - MVC를 사용하고 있습니다. 그것은 사용자 등록 페이지와 개인 사용자 패널을 포함합니다. 나는 다음과 같은 URL 패턴과 현재 설정이 있습니다MVC 인터셉터 대 스프링 보안 필터 대 뭔가 ...?
whatever/myapp/login
사용자 로그 시작 등록whatever/myapp/register?step=1
에서
whatever/myapp/account/**
개인 영역 조회수 (페이지) 후 등록 프로세스를 완료하는 동안whatever/myapp/pending
보기 표시whatever/myapp/blocked
계정 차단보기whatever/myapp/register/retry
등록에 실패하면 기본적으로
을 다시 시도 llow, 다음이 URL은 사용자 인증을 필요로한다, 즉 필요-로그인 :이
whatever/myapp/pending
(이 페이지로 리디렉션 설정 타이머를 가지고
whatever/myapp/account/**
(개인 영역 페이지)/계정/홈)whatever/myapp/register/retry
이 교류에 매우 간단합니다 Spring 보안을 사용하여 hieve합니다. 그러나 Spring 보안을 통한 사용자 인증에 관계없이 사용자의 현재 계정 상태 (내 DB에 저장 됨)에 따라 비공개 영역 페이지에 액세스 할 수 있는지 여부를 결정해야합니다.
사용자가 개인 영역 (/account/**
)에있는 항목에 액세스하려고하면 상태에 따라 적절한보기 (적절한 페이지로 리디렉션 됨)가 표시되어야합니다. 나는 이러한 상태가 정의한 :
suspended
- 관련보기enabled
보류에 - 전체 액세스 권한을disabled
을 허용 - 여기retry_allowed
관련이없는 -보기blocked
을 다시 시도 관련 - 관련 계정 차단보기
현재 /account/**
에 MVC 인터셉터를 설정하여 사용자 상태를 확인하고 적절한 페이지로 리디렉션하지만 어쨌든 여러 컨트롤러 호출과 같은 이상한 동작을 겪고 있기 때문에 이것이 이상적이거나 적절한 해결책이 아님을 알게됩니다. .. 그리고 또한 나는/false
preHandle()
방법 안에 돌려 보낼 언제 확실하지 않다. 인터셉터의 코드 스 니펫은 다음과 같습니다.
유효한 방법입니까? 다른 대안?