The problem is that you're setting up an HTTP proxy connection, but the OAuth exchange uses an HTTPS connection.
At the very least, you'll need to setup proxy information for HTTPS with something like
systemProperties.setProperty( "https.proxyHost", "proxy server" );
systemProperties.setProperty( "https.proxyPort", "secure proxy port" );
and you should be sure to test it with a connection to https://google.com/
That is, however, the least that you may need to do. The reality is that it can get much MUCH more complicated. HTTPS really isn't made to work through a proxy, and a proxy fundamentally undermines much of the entire security behind it. There are many other things you may need to setup so that you deliberately undermine the security controls, and you really shouldn't do that. (But if you have to, it looks like How do a send an HTTPS request through a proxy in Java? has several pointers for things you will need to do.)
But this is only the start of your problems, to be honest. Although it means you'll be able to send things out through the proxy, the Mirror API uses web-hooks as callbacks for several of its functions, and these callbacks will also be over HTTPS. So your proxy will also need to be able to handle incoming HTTPS connections and route them to your server.
You may want to look into testing things out on App Engine, since these issues will be handled for you.