특정 페이지로 리디렉션을 처리합니다
-
23-12-2019 - |
문제
Deadbolt 가 사용합니다.그가있는 경우 사용자를 리디렉션해야합니다 (subjectPresent
).예를 들어,이 컨트롤러는 가입 페이지를 렌더링합니다.
public static Result signup() {
return ok(signup.render())
}
.
그러나 사용자가 이미 존재하는 경우 이미 등록 된 컨트롤러는 그를 자신의 프로필 페이지로 리디렉션해야합니다 : return ok(profilePage.render())
주석으로 어떻게 할 수 있습니까?
해결책
Deadbolt는 이러한 종류의 조건부 스위칭을 위해서는 실제로는 그렇지 않지만 다음과 같은 방법으로 해킹 할 수 있습니다 :
- subjectPresentHandler 와 같은 뭔가라고 불리는 다른 deadbolthandler를 만듭니다.
- 프로필 페이지로 리디렉션하려면 SubjectPresentHandler # OnAuthFailure 메서드를 구현합니다.
-
@SubjectNotPresent (handler= subjentPresentHandler.class)
사용자가있는 경우 인증 실패를 일으 킵니다.그러면 결과를 얻으려면 SubjectPresentHandler # OnauthFailure를 호출합니다.
그러나 개인적으로
라인을 따라 가입 방법 내에서 간단한 테스트를 추가하는 것을 고려합니다.public static Result signup() {
Result result;
User user = // however you normally get your user
if (user == null) {
result = ok(signup.render())
} else {
result = redirect(routes.<your profile view method>);
}
return result;
}
.제휴하지 않습니다 StackOverflow