猿问

JMeter JMS 消息认证失败

我想将JMS 消息发送到我本地的 JBoss 7.2 服务器。为此,我尝试将JMeterJMS 点对点步骤结合使用。我配置了所有内容,如下图所示:

JNDI 属性:

  • java.naming.security.principal = ca2

  • java.naming.security.credentials = 12346578

我在服务器端尝试过的:

  • 创建了一个应用程序用户(使用 JNDI 属性中的凭据)

  • 从中删除了安全领域<http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>

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

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

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

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

我还应该尝试什么?


ibeautiful
浏览 146回答 2
2回答

米琪卡哇伊

这些ca2和12346578值对我来说看起来不是MD5 编码的,我认为您需要使用UsernamePasswordHashUtil来加密凭证,例如java&nbsp;-classpath&nbsp;/path/to/jboss/sasl/jar&nbsp;org/jboss/sasl/util/UsernamePasswordHashUtil&nbsp;<username>&nbsp;[realm&nbsp;name]&nbsp;<password>或者,您可以考虑使用jboss-ejb-client并从JSR223 Sampler 和 Groovy语言以编程方式发送消息,例如:def config = AuthenticationConfiguration.empty()&nbsp; &nbsp; &nbsp; &nbsp; .setSaslMechanismSelector(SaslMechanismSelector.NONE.addMechanism("DIGEST-MD5")).useName("ca2")&nbsp; &nbsp; &nbsp; &nbsp; .usePassword("12345678");def ctx = AuthenticationContext.empty().with(MatchRule.ALL.matchHost("127.0.0.1"), config);

慕娘9325324

原来我的配置完全错误。我向所有试图帮助我的人道歉。这对我来说是一个很好的教训。这是我必须做的,如果您处于类似情况,您应该考虑一下:从 jmeter 的 lib/ext 文件夹中删除 jboss-client.jar。(由于某种原因导致连接关闭得太快)将 JMeter Point-to-Point 步骤的 Communication style 更改为&nbsp;request_only创建一个 JBoss 应用程序用户并将其添加到来宾组&nbsp;(./add-user.sh -a --user ca2 --password 12345678 -g guest)在服务器配置中激活 jboss 配置文件(添加系统属性&nbsp;<property name="spring.profiles.active" value="jboss"/>:)当然,在 Java 代码中正确配置 JMS 消费者(可以在管理控制台中检查消费者是否存在)感谢所有帮助过我的人。
随时随地看视频慕课网APP

相关分类

Java
我要回答