apache/pulsar · error · IllegalArgumentException
saslJaasServerRoleTokenSignerSecretPath parameter is empty
Error message
saslJaasServerRoleTokenSignerSecretPath parameter is empty
What it means
AuthenticationProviderSasl.initialize found the saslJaasServerRoleTokenSignerSecretPath configuration empty; without a secret file the server cannot sign/verify role tokens, so SASL provider initialization fails.
Source
Thrown at pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderSasl.java:123
if (jaasCredentialsContainer == null) {
log.info().attr("value", loginContextName).log("JAAS loginContext is:.");
try {
jaasCredentialsContainer = new JAASCredentialsContainer(
loginContextName,
new PulsarSaslServer.SaslServerCallbackHandler(allowedIdsPattern),
configuration);
} catch (LoginException e) {
log.error().exception(e).log("JAAS login in broker failed");
throw new IOException(e);
}
}
String saslJaasServerRoleTokenSignerSecretPath = config.getSaslJaasServerRoleTokenSignerSecretPath();
byte[] secret = null;
if (StringUtils.isNotBlank(saslJaasServerRoleTokenSignerSecretPath)) {
secret = readSecretFromUrl(saslJaasServerRoleTokenSignerSecretPath);
} else {
String msg = "saslJaasServerRoleTokenSignerSecretPath parameter is empty";
throw new IllegalArgumentException(msg);
}
this.signer = new SaslRoleTokenSigner(secret);
this.authStates = Caffeine.newBuilder()
.recordStats()
.maximumSize(config.getMaxInflightSaslContext())
.expireAfterWrite(config.getInflightSaslContextExpiryMs(), TimeUnit.MILLISECONDS).build();
CacheMetricsCollector.CAFFEINE.addCache("auth-sasl-states-cache", authStates);
}
@Override
public String getAuthMethodName() {
return SaslConstants.AUTH_METHOD_NAME;
}
@Override
public void close() throws IOException {
if (jaasCredentialsContainer != null) {
jaasCredentialsContainer.close();View on GitHub (pinned to 820761864e)
Solutions
- Set saslJaasServerRoleTokenSignerSecretPath in broker.conf to a valid secret file path
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderSasl.java:123 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/pulsar@820761864e (2026-09-06).
Data as JSON: /api/errors/ecf2f0ce3724b38f.
Report an issue: GitHub.