Currently, I am using the Firebase Admin SDK to send Firebase messages in a Java server-side application.
I can send messages without a proxy and through a proxy without basic authentication.
However, when I try to send a message through a proxy with basic authentication, it fails with a 407 error.
Here is my code
String proxy_addr = "my_proxy_addr";
int proxy_port = my_proxy_port;
String proxy_name = "my_proxy_name";
String proxy_pass = "my_proxy_password";
String file_path = "my_auth_file_path";
System.setProperty("https.proxyHost", proxy_addr);
System.setProperty("https.proxyPort", String.valueOf(proxy_port));
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(proxy_name, proxy_pass.toCharArray());
}
});
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxy_addr, proxy_port));
HttpTransport transport = new NetHttpTransport.Builder().setProxy(proxy).build();
HttpTransportFactory httpTransportFactory = new HttpTransportFactory() {
@Override
public HttpTransport create() {
return transport;
}
};
FileInputStream stream = new FileInputStream(file_path);
GoogleCredentials googleCredentials = GoogleCredentials.fromStream(stream, httpTransportFactory);
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(googleCredentials)
.setHttpTransport(transport)
.build();
FirebaseApp.initializeApp(options);
FirebaseMessaging.getInstance().sendMulticast(message);
What am I doing wrong ?