Author: pmouawad Date: Thu Sep 13 20:20:15 2018 New Revision: 1840863 URL: http://svn.apache.org/viewvc?rev=1840863&view=rev Log: Bug 62716: When Recording, JMeter removes Authorization from generated Header Manager when using Bearer Token Bugzilla Id: 62716
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java jmeter/trunk/xdocs/changes.xml Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?rev=1840863&r1=1840862&r2=1840863&view=diff ============================================================================== --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java (original) +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java Thu Sep 13 20:20:15 2018 @@ -171,6 +171,8 @@ public class ProxyControl extends Generi private static final String NOTIFY_CHILD_SAMPLER_LISTENERS_FILTERED = "ProxyControlGui.notify_child_sl_filtered"; // $NON-NLS-1$ + private static final String BEARER_AUTH = "Bearer"; + private static final String BASIC_AUTH = "Basic"; // $NON-NLS-1$ private static final String DIGEST_AUTH = "Digest"; // $NON-NLS-1$ @@ -698,11 +700,29 @@ public class ProxyControl extends Generi if (tep.getName().equals(HTTPConstants.HEADER_AUTHORIZATION)) { //Construct Authorization object from HEADER_AUTHORIZATION authHeader = (Header) tep.getObjectValue(); - String[] authHeaderContent = authHeader.getValue().split(" ");//$NON-NLS-1$ + String headerValue = authHeader.getValue().trim(); + String[] authHeaderContent = headerValue.split(" ");//$NON-NLS-1$ String authType; String authCredentialsBase64; if(authHeaderContent.length>=2) { authType = authHeaderContent[0]; + // if HEADER_AUTHORIZATION contains "Basic" + // then set Mechanism.BASIC_DIGEST, otherwise Mechanism.KERBEROS + Mechanism mechanism; + switch (authType) { + case BEARER_AUTH: + // This one will need to be correlated manually by user + return null; + case DIGEST_AUTH: + mechanism = Mechanism.DIGEST; + break; + case BASIC_AUTH: + mechanism = Mechanism.BASIC; + break; + default: + mechanism = Mechanism.KERBEROS; + break; + } authCredentialsBase64 = authHeaderContent[1]; authorization=new Authorization(); try { @@ -711,20 +731,6 @@ public class ProxyControl extends Generi log.error("Error filling url on authorization, message: {}", e.getMessage(), e); authorization.setURL("${AUTH_BASE_URL}");//$NON-NLS-1$ } - // if HEADER_AUTHORIZATION contains "Basic" - // then set Mechanism.BASIC_DIGEST, otherwise Mechanism.KERBEROS - Mechanism mechanism; - switch (authType) { - case DIGEST_AUTH: - mechanism = Mechanism.DIGEST; - break; - case BASIC_AUTH: - mechanism = Mechanism.BASIC; - break; - default: - mechanism = Mechanism.KERBEROS; - break; - } authorization.setMechanism(mechanism); if(BASIC_AUTH.equals(authType)) { String authCred= new String(Base64.decodeBase64(authCredentialsBase64)); Modified: jmeter/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1840863&r1=1840862&r2=1840863&view=diff ============================================================================== --- jmeter/trunk/xdocs/changes.xml [utf-8] (original) +++ jmeter/trunk/xdocs/changes.xml [utf-8] Thu Sep 13 20:20:15 2018 @@ -255,6 +255,7 @@ this behaviour, set <code>httpclient.res <li><bug>60190</bug>Content-Type is added for <code>POST</code> unconditionally. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li> <li><bug>62462</bug><pr>387</pr>Make delegation of credentials in SPNEGO possible again.</li> <li><bug>58807</bug><code>Reset SSL State on Thread Group iteration only (was https.use.cached.ssl.context=false</code> is broken)</li> + <li><bug>62716</bug>When Recording, JMeter removes Authorization from generated Header Manager when using Bearer Token</li> </ul> <h3>Other Samplers</h3>