You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Jun Wang (Jira)" <ji...@apache.org> on 2020/05/15 21:31:00 UTC
[jira] [Commented] (KAFKA-7631) NullPointerException when SCRAM is
allowed bu ScramLoginModule is not in broker's jaas.conf
[ https://issues.apache.org/jira/browse/KAFKA-7631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17108677#comment-17108677 ]
Jun Wang commented on KAFKA-7631:
---------------------------------
This is a JAAS config issue, For example putting PlainLoginModule inside a scram configuration.
{noformat}
sasl_scram.KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule optional
username="admin"
password="admin-secret"
user_admin="admin-secret";
};
{noformat}
To fix the NullPointerException. I looked at SaslServerAuthenticator.java code, just need to add one line inside createSaslServer function.
According the [java Sasl document|[https://docs.oracle.com/javase/8/docs/api/javax/security/sasl/Sasl.html#createSaslServer-java.lang.String-java.lang.String-java.lang.String-java.util.Map-javax.security.auth.callback.CallbackHandler-] ]
Returns:A possibly null {{SaslServer}} created using the parameters supplied. If null, cannot find a {{SaslServerFactory}} that will produce one.
also changed line 288 from LOG.debug to LOG.error
{noformat}
LOG.error("Failed during {}: {}", reauthInfo.authenticationOrReauthenticationText(), e.getMessage());{noformat}
Log file shows following error after fix.
{noformat}
[2020-05-15 17:21:54,521] ERROR Failed during authentication: Kafka Server failed to create a SaslServer to interact with a client during session authentication (org.apache.kafka.common.security.authenticator.SaslServerAuthenticator)
{noformat}
patch file attached.
> NullPointerException when SCRAM is allowed bu ScramLoginModule is not in broker's jaas.conf
> -------------------------------------------------------------------------------------------
>
> Key: KAFKA-7631
> URL: https://issues.apache.org/jira/browse/KAFKA-7631
> Project: Kafka
> Issue Type: Improvement
> Components: security
> Affects Versions: 2.0.0
> Reporter: Andras Beni
> Assignee: Viktor Somogyi-Vass
> Priority: Minor
>
> When user wants to use delegation tokens and lists {{SCRAM}} in {{sasl.enabled.mechanisms}}, but does not add {{ScramLoginModule}} to broker's JAAS configuration, a null pointer exception is thrown on broker side and the connection is closed.
> Meaningful error message should be logged and sent back to the client.
> {code}
> java.lang.NullPointerException
> at org.apache.kafka.common.security.authenticator.SaslServerAuthenticator.handleSaslToken(SaslServerAuthenticator.java:376)
> at org.apache.kafka.common.security.authenticator.SaslServerAuthenticator.authenticate(SaslServerAuthenticator.java:262)
> at org.apache.kafka.common.network.KafkaChannel.prepare(KafkaChannel.java:127)
> at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:489)
> at org.apache.kafka.common.network.Selector.poll(Selector.java:427)
> at kafka.network.Processor.poll(SocketServer.scala:679)
> at kafka.network.Processor.run(SocketServer.scala:584)
> at java.lang.Thread.run(Thread.java:748)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)