저는 Spring Security 2.0.7을 사용하고 있습니다. 콩 preAuthenticatedUserDetailsService
와 함께 UserDetailsService
이 구현되었습니다.UserDetailsService 구현 및 예외가있는 Spring 보안의 사용자 정의 메시지
괜찮습니다. 이제 새로운 맞춤 오류 메시지를 추가하고 싶습니다. loadUserByUsername
메서드에서 일부 사용자 지정 논리를 추가하고 싶습니다. 예 : 일부 속성에 따라 사용자가 로그인하지 않도록하고 사용자 정의 메시지와 함께 UsernameNotFoundException
을 던집니다.
스프링은 예외를 처리하여 세션에 설정하지만, "SPRING_SECURITY_LAST_EXCEPTION"키를 사용하여 세션에서 예외를 검색하면 "잘못된 자격 증명"메시지가 표시됩니다.
지금은 불쾌한 작업장으로 고정되어 있으며, 대부분 나는 무슨 일이 일어나고 있는지 알고 싶습니다!
아이디어가 있으십니까?
ps. 그래서이 문제는 많이 읽었지 만, 대부분은 봄 보안 3.0을 사용합니다.
보안 관점에서 보면 기본적으로 원하는 것입니다. ** 사용자 이름 **이 존재하지 않는다고 사용자에게 알리고 싶지는 않습니다. 해커가 다음 사용자 이름으로 이동하여 다른 메시지를받을 때까지 (암호가 틀렸을 때) 암호를 해킹하기 시작합니다. –
그래, 무슨 말인지 알 겠어.하지만 이건 비즈니스 논리 야. 예를 들어 자격 증명은 괜찮지 만 암호가 만료되었거나 사용자가 아직 활동하지 않은 것 같아. 사용자는 해당 메시지를보아야합니다. – gonzalon
귀하의 질문에 정교하게 설명하십시오. 현재 귀하가 원하는 것이 명확하지 않습니다. 당신의 코멘트와 질문은 당신이 활성 사용자가 아닌 만료 된 자격 증명과 관계가없는'UsernameNotFoundException'에 대해 이야기하는 것과 관련이 없습니다. –