Better list everything at [email protected], I agree that is why I only returned after major ones that need to be remedied before any of the other checks can happen: either is null, either is empty, one doesn't match the other, and return on success (even though this may perform all the checks already it is readable and clear.
and we could actually get rid of the very last if statement, because it should never evaluate to true because that is already covered.
Logs are generally accessible and can be read by people that should probably not see the password of your user.
This is a security issue and could be a severe security issue.
In Java8 this would be done with Functions, but, let's use an interface for the moment: In fact, I would personally go for an even more sophisticated approach that also separates the types of results to make changes to the logic even easier.