Hello ! I have been looking through the web for quite some time, tried a lot of things and didn't find any working solution to my problem, so I wish someone here will have a solution for me :-) !
I am trying to deploy a GAE Java app, and I am going through a corporate proxy, which requires authentication. The proxy config looks like this : user : DOMAIN\username password : pass http proxy : proxy_http.something.com:8000 https proxy : proxy_https.something.com:8000 I read this : http://code.google.com/appengine/docs/java/tools/uploadinganapp.html#Using_an_HTTP_Proxy => The values for --http_proxy and --proxy_https must match "proxy_http.something.com:8000", and does not work when matching "http://DOMAIN\username:p...@proxy_http.something.com:8000" => (unknown host) I tried to set the proxy informations by modifying appcfg.cmd and adding some java proxy arguments : -Dhttp.proxyHost="http://DOMAIN \username:p...@proxy_http.something.com" -Dhttp.proxyPort=8000 -Dhttps.proxyHost="http://DOMAIN \username:p...@proxy_https.something.com" -Dhttps.proxyPort=8000 => still unknown host error. I also tried this : -Dhttp.proxyHost="proxy_http.something.com" -Dhttp.proxyPort=8000 -Dhttp.proxyUser="DOMAIN\username" -Dhttp.proxyPassword=pass -Dhttps.proxyHost="proxy_https.something.com" -Dhttps.proxyPort=8000 -Dhttps.proxyUser="DOMAIN\username" -Dhttps.proxyPassword=pass The host is resolved but then it tries to use the proxy and gets an Authentication failure exception. Then I tried to call AppCfg.main myself, and the the proxy and Proxy auth in the JVM prior to calling it : public class Test { public static void main(String[] args) { Authenticator.setDefault(new ProxyAuthenticator("DOMAIN\ \username", "pass")); System.setProperty("http.proxyHost", "proxy_https.something.com"); System.setProperty("http.proxyPort", "8000"); System.setProperty("https.proxyHost", "proxy_https.something.com"); System.setProperty("https.proxyPort", "8000"); String[] appArgs = { "update", "PATH TO MY WAR FOLDER" }; AppCfg.main(appArgs); } static class ProxyAuthenticator extends Authenticator { private String user, password; public ProxyAuthenticator(String user, String password) { this.user = user; this.password = password; } @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user, password.toCharArray()); } } } However, I still get the Authentication failure exception. Here is the stacktrace : Unable to update: java.io.IOException: Authentication failure at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java: 1402) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java: 168) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java: 836) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java: 230) at com.google.appengine.tools.admin.ServerConnection.connect(ServerConnection.java: 340) at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java: 133) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java: 82) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java: 559) at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java: 376) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java: 111) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 56) at com.google.appengine.tools.admin.AppCfg $UpdateAction.execute(AppCfg.java:527) at com.google.appengine.tools.admin.AppCfg.<init>(AppCfg.java:130) at com.google.appengine.tools.admin.AppCfg.<init>(AppCfg.java:58) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:54) at com.googlecode.android_frameworks.server.Test.main(Test.java:20) com.google.appengine.tools.admin.AdminException: Unable to update app: Authentication failure at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 62) at com.google.appengine.tools.admin.AppCfg $UpdateAction.execute(AppCfg.java:527) at com.google.appengine.tools.admin.AppCfg.<init>(AppCfg.java:130) at com.google.appengine.tools.admin.AppCfg.<init>(AppCfg.java:58) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:54) at com.googlecode.android_frameworks.server.Test.main(Test.java:20) Caused by: java.io.IOException: Authentication failure at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java: 1402) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java: 168) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java: 836) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java: 230) at com.google.appengine.tools.admin.ServerConnection.connect(ServerConnection.java: 340) at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java: 133) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java: 82) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java: 559) at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java: 376) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java: 111) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 56) ... 5 more Seems that GAE uses a sun.net.www.protocol.https.HttpsURLConnectionImpl, and it doesn't seem to take the Authenticator into account. Has anyone already achieved to upload java gae applications through an authenticated proxy ? Any hint would be great ! Also, are the sources available ? I might soon try to retro-engineer the com.google.appengine.tools.admin classes to understand how it deploys the whole stuff... Cheers, Piwaï -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
