2014-04-09 2 views
1

저는 Spring Security 2.0.7을 사용하고 있습니다. 콩 preAuthenticatedUserDetailsService와 함께 UserDetailsService이 구현되었습니다.UserDetailsService 구현 및 예외가있는 Spring 보안의 사용자 정의 메시지

괜찮습니다. 이제 새로운 맞춤 오류 메시지를 추가하고 싶습니다. loadUserByUsername 메서드에서 일부 사용자 지정 논리를 추가하고 싶습니다. 예 : 일부 속성에 따라 사용자가 로그인하지 않도록하고 사용자 정의 메시지와 함께 UsernameNotFoundException을 던집니다.

스프링은 예외를 처리하여 세션에 설정하지만, "SPRING_SECURITY_LAST_EXCEPTION"키를 사용하여 세션에서 예외를 검색하면 "잘못된 자격 증명"메시지가 표시됩니다.

지금은 불쾌한 작업장으로 고정되어 있으며, 대부분 나는 무슨 일이 일어나고 있는지 알고 싶습니다!

아이디어가 있으십니까?

ps. 그래서이 문제는 많이 읽었지 만, 대부분은 봄 보안 3.0을 사용합니다.

+1

보안 관점에서 보면 기본적으로 원하는 것입니다. ** 사용자 이름 **이 존재하지 않는다고 사용자에게 알리고 싶지는 않습니다. 해커가 다음 사용자 이름으로 이동하여 다른 메시지를받을 때까지 (암호가 틀렸을 때) 암호를 해킹하기 시작합니다. –

+0

그래, 무슨 말인지 알 겠어.하지만 이건 비즈니스 논리 야. 예를 들어 자격 증명은 괜찮지 만 암호가 만료되었거나 사용자가 아직 활동하지 않은 것 같아. 사용자는 해당 메시지를보아야합니다. – gonzalon

+0

귀하의 질문에 정교하게 설명하십시오. 현재 귀하가 원하는 것이 명확하지 않습니다. 당신의 코멘트와 질문은 당신이 활성 사용자가 아닌 만료 된 자격 증명과 관계가없는'UsernameNotFoundException'에 대해 이야기하는 것과 관련이 없습니다. –

답변

0

그냥 닫으십시오. @M. Deinum은 코멘트에서 언급했다. 스프링은 보안 목적으로이 방법을 처리합니다. 구현은 ExceptionTranslationFilter 클래스에서 볼 수 있습니다.

관련 문제