Bagaimana cara memeriksa apakah BadCredentialsException tidak dimasukkan ke dalam loadUserByUsername

saya mengautentikasi pengguna saya dengan UserDetailsService:

<authentication-manager alias="authenticationManager">          
      <authentication-provider user-service-ref="userDetailsService">
         <password-encoder hash="sha"/>             
      </authentication-provider>   
    </authentication-manager> 

kelas UserDetailsService:

@Service("userDetailsService")
public class UserDetailsServiceImpl implements UserDetailsService {

    @Autowired
    private UserService userService;


    @Override
    public UserDetails loadUserByUsername(String username)
            throws UsernameNotFoundException, DataAccessException {

User user = null;
    try {
        user = userService.getUserByUsername(username);
    } catch (Exception e) {
        e.printStackTrace();
    }


   if (user.isForceChangePass()) {
        MyForcePasswordChangeException bad = new MyForcePasswordChangeException(
                "Password is not valid, and it must be changed!");
        throw bad;
    }

}

EDIT:

setelah mendapatkan nama pengguna saya memeriksa indikator ForceChangePass dan jika itu benar saya melalui pengecualian saya sendiri yang pada gilirannya mengarahkan pengguna ke loginFailureHandler (meskipun kata sandi benar atau tidak) saya ingin di loginFailureHandler untuk memeriksa apakah pengecualian saya dilemparkan jika login berhasil saja .


person fresh_dev    schedule 28.02.2012    source sumber


Jawaban (1)