JMeter JMS 消息认证失败
JMeter JMS message authentication fails
我想将 JMS 消息发送到我的本地 JBoss 7.2 服务器。为此,我尝试将 JMeter 与 JMS Point-to-Point 步骤一起使用。 我配置了一切如下图所示:
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:服务器拒绝身份验证]
我还应该尝试什么?
这些 ca2
和 12346578
值看起来不像是 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 消费者(可以在管理控制台中检查消费者是否存在)
感谢所有帮助过我的人。
我想将 JMS 消息发送到我的本地 JBoss 7.2 服务器。为此,我尝试将 JMeter 与 JMS Point-to-Point 步骤一起使用。 我配置了一切如下图所示:
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:服务器拒绝身份验证]
我还应该尝试什么?
这些 ca2
和 12346578
值看起来不像是 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 消费者(可以在管理控制台中检查消费者是否存在)
感谢所有帮助过我的人。