2014-10-24 5 views
1

내가 버전 3.5.2에서 4JASIG 중앙 인증 서비스 (4)는, 사용자 인증 및 사용자 정의 예외

에 3.5.2에서 CAS를 업그레이드, 나는 CustomAuthentication 클래스를 기반으로 내 사용자 정의 인증 및 던져 예외를 할 AbstractJdbcUsernamePasswordAuthenticationHandler을 확장 만들

throw new BadCredentialsAuthenticationException("error.accountNotExist"); 

그렇게 message.properties에 난 그냥 존재하지 계정 error.accountNotExist = 추가 : 내가

예를 필요로한다.

프런트 엔드는 위의 문자열을 반환합니다.

CAS 버전 4의 경우, AbstractJdbcUsernamePasswordAuthenticationHandler가 변경되었습니다. 더 이상 BadCredentialsAuthenticationException을 지원하지 않습니다. 그래서 cas 버전 4에서 원하는대로 사용자 정의 문자열을 반환하는 방법은 무엇입니까?

+0

쉬운에 authenticationExceptionHandler 교체, 새로운 않고 AccountNotFoundException, 왜 속성 파일에 메시지를 저장하는 것이 중요하다 ("계정이 존재하지")을 던져? – vzamanillo

+0

질문 제목이 맞춤 예외이기 때문에 AccountNotFoundException 이상이 있고, 계정이 비활성 상태이고, 계정이 만료되고, 계정을 지금 사용하도록 설정하지 않았 음을 의미합니다. 그러나 리턴 메시지는 일반적인 "Invalid Credentials"입니다. 이를 위해서는 맞춤 인증이 필요합니다. 아마 더 쉽게 사용자 정의 예외를 추가 할 수 있습니까? – Stupidfrog

+0

아니, 당신은 더 나은 솔루션을 가지고 있지만, 여전히 사용자에게 매우 상세한 메시지를 표시하는 것이 왜 중요한지 생각하고 있습니다. 어쨌든, inappropiate 대신 "authenticationFailure.AccountNotFoundException"을 더 적절한 "Account Not Exist"로 업데이트하지 마십시오. 텍스트 "잘못된 자격 증명"? – vzamanillo

답변

3

아니요 1 번 답변이므로 제 스스로 알아보십시오. 사용자 정의 예외

한 새로운 예외 클래스를 만들 수를 추가 할 수

단계하면 LoginException에게 새로운 추가 예외 로그인-webflow.xml에서

3

messages.properties에서

이 해당 추가 쪽지를 확장 -> handleAuthenticationFailure 액션 상태 add

4 CustomAuthenticationExceptionHandler.java를 만들고, 원본 소스 코드를 복사하고, DEFAULT_ERROR_LIST에 새 예외를 추가합니다. CAS-servlet.xml 파일에

(5)이 CustomAuthenticationExceptionHandler