javax.jms.JMSSecurityException : Unable to validate user: null

标签 java jboss jms jboss7.x hornetq

环境:

Jboss 7.1.0 操作系统窗口

我正在尝试一个简单的测试,使用带有内置 HornetQ JMS 提供程序的 Jboss 来试用 JMS。经过大量尝试后,我设法通过此配置获得响应

        final Properties env = new Properties();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
        env.put(Context.PROVIDER_URL, "remote://localhost:4447");
        env.put(Context.SECURITY_PRINCIPAL, "appuser2");
        env.put(Context.SECURITY_CREDENTIALS, "s3cr3t");        

但问题是当我运行它时出现以下错误:

javax.jms.JMSSecurityException: Unable to validate user: null
    at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:286)
    at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:695)
    at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSession(ClientSessionFactoryImpl.java:264)
    at org.hornetq.jms.client.HornetQConnection.authorize(HornetQConnection.java:589)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:694)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:121)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:116)
    at com.jms.client.ConsoleClient.runExample(ConsoleClient.java:51)
    at com.jms.client.ConsoleClient.main(ConsoleClient.java:20)
Caused by: HornetQException[errorCode=105 message=Unable to validate user: null]
    ... 9 more

我一直在谷歌上四处寻找,每个例子似乎都指向如何使用 HornetQ 作为独立服务器配置安全设置。我不知道如何在 Jboss 上配置用户以及我是否需要这样做。

有什么想法吗?

最佳答案

您似乎使用如下用户名和密码创建了一个QueueConnection:

QueueConnection qcon = qconFactory.createQueueConnection("appuser2","s3cr3t");

如果你不这样做,你会得到这个错误

Unable to validate user: null.

如果你不想使用用户名和密码,你可以设置 security-enabled 值 false 如下:

<subsystem xmlns="urn:jboss:domain:messaging:1.1">
     <hornetq-server>
         <security-enabled>false</security-enabled>
         ......
     </hornetq-server>
</subsystem>

然后您可以创建一个没有用户名和密码的QueueConnection,如下所示:

QueueConnection qcon = qconFactory.createQueueConnection();

关于javax.jms.JMSSecurityException : Unable to validate user: null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540456/

相关文章:

java - ActiveMQ 日志中的条目太多

java - Maven:javaee-api 与 jboss-javaee-6.0

eclipse - JBoss AS 7部署困境,eclipse与standalone.bat

java - 消息监听器 onMessage() 方法不会从队列中读取消息

java - Java 中的自定义字体

java - Hibernate当自引用指向基类型时如何进行自引用继承映射

java - Java,TargetDataLine读取的字节,错误的代码将其字节保存到文件中

java - 动态入站适配器连接不起作用

java - 没有OOM的BytesMessage

jakarta-ee - 如何配置 Wildfly 连接到 RabbitMQ?