Skip to content

Commit cbead3f

Browse files
Merge pull request #91 from rabbitmq/rabbitmq-perf-test-88
Add -se / --sasl-external flags to enable SASL EXTERNAL authentication
2 parents ff27f2a + 9ec56f0 commit cbead3f

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/main/java/com/rabbitmq/perf/PerfTest.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.apache.commons.cli.ParseException;
4343

4444
import com.rabbitmq.client.ConnectionFactory;
45+
import com.rabbitmq.client.DefaultSaslConfig;
4546
import org.slf4j.Logger;
4647
import org.slf4j.LoggerFactory;
4748

@@ -109,6 +110,7 @@ public static void main(String [] args, PerfTestOptions perfTestOptions) {
109110
boolean legacyMetrics = cmd.hasOption('l');
110111
boolean autoDelete = boolArg(cmd, "ad", true);
111112
boolean useMillis = cmd.hasOption("ms");
113+
boolean saslExternal = cmd.hasOption("se");
112114
String queueArgs = strArg(cmd, "qa", null);
113115
int consumerLatencyInMicroseconds = intArg(cmd, 'L', 0);
114116
int heartbeatSenderThreads = intArg(cmd, "hst", -1);
@@ -157,11 +159,13 @@ public static void main(String [] args, PerfTestOptions perfTestOptions) {
157159
SSLContext sslContext = perfTestOptions.skipSslContextConfiguration ? null :
158160
getSslContextIfNecessary(cmd, System.getProperties());
159161

160-
161162
ConnectionFactory factory = new ConnectionFactory();
162163
if (sslContext != null) {
163164
factory.useSslProtocol(sslContext);
164165
}
166+
if (saslExternal) {
167+
factory.setSaslConfig(DefaultSaslConfig.EXTERNAL);
168+
}
165169
factory.setShutdownTimeout(0); // So we still shut down even with slow consumers
166170
factory.setUri(uris.get(0));
167171
factory.setRequestedFrameMax(frameMax);
@@ -389,7 +393,10 @@ private static Options getOptions() {
389393
options.addOption(new Option("qa", "queue-args", true, "queue arguments as key/pair values, separated by commas, "
390394
+ "e.g. x-max-length=10"));
391395
options.addOption(new Option("L", "consumer-latency", true, "consumer latency in microseconds"));
392-
options.addOption(new Option("udsc", "use-default-ssl-context", false,"use JVM default SSL context"));
396+
397+
options.addOption(new Option("udsc", "use-default-ssl-context", false, "use JVM default SSL context"));
398+
options.addOption(new Option("se", "sasl-external", false, "use SASL EXTERNAL authentication, default is false. " +
399+
"Set to true if using client certificate authentication with the rabbitmq_auth_mechanism_ssl plugin."));
393400

394401
options.addOption(new Option("v", "version", false,"print version information"));
395402

0 commit comments

Comments
 (0)