JMeter JMS 消息认证失败

JMeter JMS message authentication fails

我想将 JMS 消息发送到我的本地 JBoss 7.2 服务器。为此,我尝试将 JMeterJMS Point-to-Point 步骤一起使用。 我配置了一切如下图所示:

JNDI 属性:

我在服务器端尝试过的:

服务器已启动并且 运行,但是 在这两种情况下我都收到以下错误:

响应消息:javax.naming.AuthenticationException:无法连接到任何服务器。尝试的服务器:[http-remoting://127.0.0.1:8080(身份验证失败:所有可用的身份验证机制都失败了:

DIGEST-MD5:服务器拒绝身份验证)] [根异常是javax.security.sasl.SaslException:身份验证失败:所有可用的身份验证机制都失败:

DIGEST-MD5:服务器拒绝身份验证]

我还应该尝试什么?

这些 ca212346578 值看起来不像是 MD5-encoded to me, I think you need to use UsernamePasswordHashUtil 以便像

这样加密凭据
java -classpath /path/to/jboss/sasl/jar org/jboss/sasl/util/UsernamePasswordHashUtil <username> [realm name] <password>

或者您可以考虑使用 jboss-ejb-client and send your message programmatically from the JSR223 Sampler and Groovy 语言,例如:

def config = AuthenticationConfiguration.empty()
        .setSaslMechanismSelector(SaslMechanismSelector.NONE.addMechanism("DIGEST-MD5")).useName("ca2")
        .usePassword("12345678");
def ctx = AuthenticationContext.empty().with(MatchRule.ALL.matchHost("127.0.0.1"), config);

原来我的配置完全错误

我向所有试图帮助我的人道歉。这对我来说是一个很好的教训。

这是我必须做的,如果您处于类似情况,您应该考虑一下:

  • 从 jmeter 的 lib/ext 文件夹中删除 jboss-client.jar。 (由于某种原因导致连接过早关闭)
  • 将 JMeter Poin-to-Point 步骤的通信方式更改为 request_only
  • 创建一个JBoss应用程序用户并将其添加到来宾组 (./add-user.sh -a --user ca2 --password 12345678 -g guest)
  • 在服务器配置中激活 jboss 配置文件(添加系统 属性: <property name="spring.profiles.active" value="jboss"/>)
  • 当然 在 Java 代码中正确配置 JMS 消费者(可以在管理控制台中检查消费者是否存在)

感谢所有帮助过我的人。