diff --git a/proxy/proxy-server/src/main/java/org/keycloak/proxy/ProxyConfig.java b/proxy/proxy-server/src/main/java/org/keycloak/proxy/ProxyConfig.java
index e328187..facdbb2 100755
--- a/proxy/proxy-server/src/main/java/org/keycloak/proxy/ProxyConfig.java
+++ b/proxy/proxy-server/src/main/java/org/keycloak/proxy/ProxyConfig.java
@@ -56,6 +56,9 @@ public class ProxyConfig {
protected Boolean directBuffers;
@JsonProperty("target-url")
protected String targetUrl;
+ /** Defaults to 30 seconds */
+ @JsonProperty("target-request-timeout")
+ protected Integer targetRequestTimeout = 30000;
@JsonProperty("send-access-token")
protected boolean sendAccessToken;
@JsonProperty("applications")
@@ -159,6 +162,14 @@ public class ProxyConfig {
this.targetUrl = targetUrl;
}
+ public Integer getTargetRequestTimeout() {
+ return targetRequestTimeout;
+ }
+
+ public void setTargetRequestTimeout(Integer targetRequestTimeout) {
+ this.targetRequestTimeout = targetRequestTimeout;
+ }
+
public List<Application> getApplications() {
return applications;
}
diff --git a/proxy/proxy-server/src/main/java/org/keycloak/proxy/ProxyServerBuilder.java b/proxy/proxy-server/src/main/java/org/keycloak/proxy/ProxyServerBuilder.java
index eb00610..f909937 100755
--- a/proxy/proxy-server/src/main/java/org/keycloak/proxy/ProxyServerBuilder.java
+++ b/proxy/proxy-server/src/main/java/org/keycloak/proxy/ProxyServerBuilder.java
@@ -97,14 +97,14 @@ public class ProxyServerBuilder {
protected Map<String, String> headerNameConfig;
- public ProxyServerBuilder target(String uri) {
+ public ProxyServerBuilder target(ProxyConfig config) {
SimpleProxyClientProvider provider = null;
try {
- provider = new SimpleProxyClientProvider(new URI(uri));
+ provider = new SimpleProxyClientProvider(new URI(config.getTargetUrl()));
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
- final HttpHandler handler = new ProxyHandler(provider, 30000, ResponseCodeHandler.HANDLE_404);
+ final HttpHandler handler = new ProxyHandler(provider, config.getTargetRequestTimeout(), ResponseCodeHandler.HANDLE_404);
proxyHandler = new HttpHandler() {
@Override
public void handleRequest(HttpServerExchange exchange) throws Exception {
@@ -385,7 +385,7 @@ public class ProxyServerBuilder {
log.error("Must set Target URL");
return null;
}
- builder.target(config.getTargetUrl());
+ builder.target(config);
if (config.getApplications() == null || config.getApplications().size() == 0) {
log.error("No applications defined");
return null;