When you say "authorized domain", do you mean the entries under the "@Anywhere domains" tab on Twitter? If so, then that shouldn't have anything to do with it. Those are for some of Twitter's Javascript widgets from their @Anywhere JS library. Even the callback URL in the application settings is flexible because ConnectController/ProviderSignInController will always send a callback URL to override the configured one.
In your stack trace, it appears to be failing when it gets the request token, via the call to OAuth1Template.fetchRequestToken(). At that point, the callback URL is the only thing passed in. So, either the OAuth1Template is misconfigured (because the TwitterConnectionFactory was given the wrong consumer key/secret) or the callback URL is bad.
I don't believe Twitter does anything with the callback URL at this point other than note it for future use--in fact, I've tested this with completely made-up URLs and it works fine. (I've even tested it with things that don't look like URLs, eg. "xxxxxx", and it still fetches a request token for me.) So, if I were guessing, I'd say something's not right about your TwitterConnectionFactory configuration and the consumer key/secret pair. If those are wrong, you'd definitely get a 401 at that point.
Craig Walls
Spring Social Project Lead