Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ActiveMQ Apollo是否实现了JMSXUserID或类似的工具来帮助跟踪经过身份验证的用户?_Jms_Activemq_Userid_Apollo - Fatal编程技术网

ActiveMQ Apollo是否实现了JMSXUserID或类似的工具来帮助跟踪经过身份验证的用户?

ActiveMQ Apollo是否实现了JMSXUserID或类似的工具来帮助跟踪经过身份验证的用户?,jms,activemq,userid,apollo,Jms,Activemq,Userid,Apollo,我知道ActiveMQ支持JMSXUserID属性: 我正在尝试使用Apollo(ActiveMQ子项目)而不是ActiveMQ,目前我一直在尝试在Apollo中复制同样的行为 我对机制并不挑剔,但简而言之,我需要某种方法来标记来自经过身份验证的用户的每个传入消息,并使用标识符让我知道是哪个用户发送了哪个消息,但用户不能通过设置自己来欺骗。这基本上正是ActiveMQ使用JMSXUserID的目的,但我似乎不知道如何在Apollo中做同样的事情 我错过了什么 我发现谷歌很难做到这一点,因为Ac

我知道ActiveMQ支持JMSXUserID属性:

我正在尝试使用Apollo(ActiveMQ子项目)而不是ActiveMQ,目前我一直在尝试在Apollo中复制同样的行为

我对机制并不挑剔,但简而言之,我需要某种方法来标记来自经过身份验证的用户的每个传入消息,并使用标识符让我知道是哪个用户发送了哪个消息,但用户不能通过设置自己来欺骗。这基本上正是ActiveMQ使用JMSXUserID的目的,但我似乎不知道如何在Apollo中做同样的事情

我错过了什么

我发现谷歌很难做到这一点,因为ActiveMQ在每一个页面上都链接到Apollo,所以我的大部分搜索结果都没有帮助


提前感谢。

阿波罗甚至支持JMS吗

从网页:

在它的当前版本中,Apollo只支持STOMP协议,但与最初的ActiveMQ一样,它被设计为一个多协议代理。在未来的版本中,它将添加OpenWire支持,以便与ActiveMQ 5.x JMS客户端兼容

为了解决您手头的问题,您不能简单地在代码中添加一个带有userid的头吗

只要从操作系统中获取它,假设您正在使用Java,那么您可能会使用

System.getProperty("user.name") 

并将其连接到跺脚头上。但是,这是客户机库(如果使用了stomp库)的问题,而不是服务器本身的问题

阿波罗的用户手册描述了这一点

基本上,您希望使用以下内容配置连接器的stomp协议:

<connector id="tcp" bind="tcp://0.0.0.0:61613">
  <stomp>
    <add_user_header separator=",">JMSXUserID</add_user_header>
  </stomp>
</connector>


我们愿意解决这个问题

Apollo确实支持JMS。Apollo examples文件夹中的安装目录中有一个示例JMS客户端,Hiram发布了一个基准测试工具,将Apollo JMS与其他服务器进行比较:为了更直接地响应您的建议,您建议我将添加额外stomp头的代码放在哪里?在服务器上?它根本不涉及客户机库,因为我们不能信任用户域中的代码。Apollo已经使用JAAS对用户进行了身份验证……我正在寻找一种方法,将该身份验证附加到通过Apollo的Stomp/JMS消息中。