KEYCLOAK-5371 Fix ConcurrentLoginCrossDCTest.concurrentLoginWithRandomDcFailures
This commit is contained in:
parent
5b92b2bfb6
commit
1874820008
3 changed files with 10 additions and 3 deletions
|
@ -353,6 +353,7 @@ public class SimpleUndertowLoadBalancer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void couldNotResolveBackend(HttpServerExchange exchange) {
|
public void couldNotResolveBackend(HttpServerExchange exchange) {
|
||||||
|
log.warnf("Could not resolve backend when request to: %s", exchange.getRequestURI());
|
||||||
delegate.couldNotResolveBackend(exchange);
|
delegate.couldNotResolveBackend(exchange);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ package org.keycloak.testsuite.util;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.commons.io.output.ByteArrayOutputStream;
|
import org.apache.commons.io.output.ByteArrayOutputStream;
|
||||||
|
import org.apache.http.Header;
|
||||||
import org.apache.http.NameValuePair;
|
import org.apache.http.NameValuePair;
|
||||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
|
@ -958,8 +959,11 @@ public class OAuthClient {
|
||||||
public AccessTokenResponse(CloseableHttpResponse response) throws Exception {
|
public AccessTokenResponse(CloseableHttpResponse response) throws Exception {
|
||||||
try {
|
try {
|
||||||
statusCode = response.getStatusLine().getStatusCode();
|
statusCode = response.getStatusLine().getStatusCode();
|
||||||
if (!"application/json".equals(response.getHeaders("Content-Type")[0].getValue())) {
|
|
||||||
Assert.fail("Invalid content type");
|
Header[] contentTypeHeaders = response.getHeaders("Content-Type");
|
||||||
|
String contentType = (contentTypeHeaders != null && contentTypeHeaders.length > 0) ? contentTypeHeaders[0].getValue() : null;
|
||||||
|
if (!"application/json".equals(contentType)) {
|
||||||
|
Assert.fail("Invalid content type. Status: " + statusCode + ", contentType: " + contentType);
|
||||||
}
|
}
|
||||||
|
|
||||||
String s = IOUtils.toString(response.getEntity().getContent());
|
String s = IOUtils.toString(response.getEntity().getContent());
|
||||||
|
|
|
@ -104,8 +104,10 @@ public class ConcurrentLoginCrossDCTest extends ConcurrentLoginTest {
|
||||||
int failureIndex = currentInvocarion / INVOCATIONS_BEFORE_SIMULATING_DC_FAILURE;
|
int failureIndex = currentInvocarion / INVOCATIONS_BEFORE_SIMULATING_DC_FAILURE;
|
||||||
int dcToEnable = failureIndex % 2;
|
int dcToEnable = failureIndex % 2;
|
||||||
int dcToDisable = (failureIndex + 1) % 2;
|
int dcToDisable = (failureIndex + 1) % 2;
|
||||||
suiteContext.getDcAuthServerBackendsInfo().get(dcToDisable).forEach(c -> loadBalancerCtrl.disableBackendNodeByName(c.getQualifier()));
|
|
||||||
|
// Ensure nodes from dcToEnable are available earlier then previous nodes from dcToDisable are disabled.
|
||||||
suiteContext.getDcAuthServerBackendsInfo().get(dcToEnable).forEach(c -> loadBalancerCtrl.enableBackendNodeByName(c.getQualifier()));
|
suiteContext.getDcAuthServerBackendsInfo().get(dcToEnable).forEach(c -> loadBalancerCtrl.enableBackendNodeByName(c.getQualifier()));
|
||||||
|
suiteContext.getDcAuthServerBackendsInfo().get(dcToDisable).forEach(c -> loadBalancerCtrl.disableBackendNodeByName(c.getQualifier()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue