You choose to throw IllegalArgumentException here.  Is this a result of the redirectUri or a Protocol error?
Is there a different exception that you can throw to let users know that there was a protocol issue?