diff --git a/slack-api-client/src/main/java/com/slack/api/util/http/SlackHttpClient.java b/slack-api-client/src/main/java/com/slack/api/util/http/SlackHttpClient.java index a3d148595..0164131d0 100644 --- a/slack-api-client/src/main/java/com/slack/api/util/http/SlackHttpClient.java +++ b/slack-api-client/src/main/java/com/slack/api/util/http/SlackHttpClient.java @@ -43,6 +43,14 @@ public static OkHttpClient buildOkHttpClient(SlackConfig config) { public static OkHttpClient buildOkHttpClient(SlackConfig config, Map userAgentCustomInfo) { final OkHttpClient.Builder okHttpClient = new OkHttpClient.Builder(); + + // For context, this change was applied to resolves https://github.com/slackapi/java-slack-sdk/issues/1122 + // There is no use case to follow redirects as of Feb 2023. + // If this SDK needs to enable developers to customize these options, + // we may want to add overloaded buildOkHttpClient() method or add such an option to the SlackConfig object. + okHttpClient.followRedirects(false); + okHttpClient.followSslRedirects(false); + okHttpClient.addInterceptor(new UserAgentInterceptor(userAgentCustomInfo)); if (config.getHttpClientReadTimeoutMillis() != null) { okHttpClient.readTimeout(config.getHttpClientReadTimeoutMillis(), TimeUnit.MILLISECONDS); diff --git a/slack-api-client/src/test/java/test_with_remote_apis/IncomingWebhooksTest.java b/slack-api-client/src/test/java/test_with_remote_apis/IncomingWebhooksTest.java index f9de386ff..452fde2d5 100644 --- a/slack-api-client/src/test/java/test_with_remote_apis/IncomingWebhooksTest.java +++ b/slack-api-client/src/test/java/test_with_remote_apis/IncomingWebhooksTest.java @@ -315,4 +315,11 @@ public void headers() throws IOException { assertThat(response.getCode(), is(200)); assertThat(response.getHeaders().size(),is(greaterThan(0))); } + + @Test + public void issue_1122_invalid_url() throws Exception { + String invalidUrl = "https://hooks.slack.com/services/invalid-url"; + WebhookResponse response = slack.send(invalidUrl, Payload.builder().text("Hello world!").build()); + assertThat(response.getCode(), is(302)); + } }