java - Custom DaoAuthenticationProvider doesn't send correct exception to custom AuthenticationFailureHandler -
in application, use spring security, , try customize it...
i have custum daoauthenticationprovider :
@component("authenticationprovider") public class limitloginauthenticationprovider extends daoauthenticationprovider { ... @override public authentication authenticate(authentication pauthentication) throws authenticationexception { if (stringutils.isblank(pauthentication.getname())) { throw new usernamenotfoundexception("login required"); } if (stringutils.isblank(pauthentication.getcredentials().tostring())) { throw new authenticationcredentialsnotfoundexception( "password required"); } ... } } and custum authenticationfailurehandler :
@component("authenticationfailurehandler") public class myauthenticationfailurehandler implements authenticationfailurehandler { @override public void onauthenticationfailure(httpservletrequest prequest, httpservletresponse presponse, authenticationexception pauthenticationexception) throws ioexception, servletexception { pauthenticationexception.getmessage(); // -> bad credentials } } my problem when submit form without login or with login no password, message "bad credentials" (from badcredentialsexception) , not custom message. why ?
ps : exceptions corerctly throw in custom daoauthenticationprovider.
it's @tobad357 said before, must set sethideusernotfoundexceptions false in authenticate() method of limitloginauthenticationprovider.class.
Comments
Post a Comment