KEYCLOAK-5371 Fix ConcurrentLoginCrossDCTest.concurrentLoginWithRandomDcFailures

This commit is contained in:
mposolda 2017-10-11 13:02:39 +02:00
parent 5b92b2bfb6
commit 1874820008
3 changed files with 10 additions and 3 deletions

View file

@ -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);
} }

View file

@ -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());

View file

@ -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()));
} }
} }
} }