Jms WSO Message Broker分层主题的基于角色的访问控制

Jms WSO Message Broker分层主题的基于角色的访问控制,jms,wso2,wso2esb,publish-subscribe,Jms,Wso2,Wso2esb,Publish Subscribe,我最近开始尝试通过WSO2的MB在WSO2 ESB之间进行消息交换,以满足需求。创建了一个JMS发送者代理服务,该服务基于SOAP输入(使用的头属性和defaultEndpoint)连接端点URL 在Message Broker上: 已将分层主题设置为 根| 节点1 节点2 有3个用户及其特定角色,分别为Root、Node1、Node2。要求是节点1应该能够同时订阅节点1和根,类似地,对于节点2,只有节点2和根。 问题是,当创建代理服务时,订阅者只能将其设置为只订阅一个节点(Root或Node1

我最近开始尝试通过WSO2的MB在WSO2 ESB之间进行消息交换,以满足需求。创建了一个JMS发送者代理服务,该服务基于SOAP输入(使用的头属性和defaultEndpoint)连接端点URL

在Message Broker上:

已将分层主题设置为

根| 节点1 节点2 有3个用户及其特定角色,分别为Root、Node1、Node2。要求是节点1应该能够同时订阅节点1和根,类似地,对于节点2,只有节点2和根。 问题是,当创建代理服务时,订阅者只能将其设置为只订阅一个节点(Root或Node1或Node2)。已尝试将目标设置为根。#但随后所有节点都已订阅(即使节点用户未根据基于角色的主题访问设置为订阅其他节点)。以下是订阅服务器的代码

enter code here

 <?xml version="1.0" encoding="UTF-8"?>
 <proxy xmlns="http://ws.apache.org/ns/synapse"
   name="Subscriber_Node2"
   transports="jms"
   statistics="disable"
   trace="disable"
   startOnLoad="true">
<target>
  <inSequence>
     <property name="OUT_ONLY" value="true"/>
     <log level="full"/>
     <log level="custom" separator="###">
        <property name="STATE"
                  value="**************** RECEIVED AT Node 2 ***************"/>
     </log>
     <drop/>
  </inSequence>
  <outSequence/>
  <faultSequence>
     <log level="custom">
        <property name="text" value="An unexpected error occured"/>
        <property name="message" expression="get-property('ERROR_MESSAGE')"/>
        <property name="code" expression="get-property('ERROR_CODE')"/>
        <property name="detail" expression="get-property('ERROR_DETAIL')"/>
        <property name="exception" expression="get-property('ERROR_EXCEPTION')"/>
     </log>
  </faultSequence>
</target>
<parameter name="transport.jms.ContentType">
   <rules>
     <jmsProperty>contentType</jmsProperty>
     <default>application/xml</default>
  </rules>
  </parameter>
  <parameter name="java.naming.factory.initial">  
   org.wso2.andes.jndi.PropertiesFileInitialContextFactory
  </parameter> 
  <parameter name="transport.jms.ConnectionFactory">
   Store2TopicConnectionFactory</parameter>
  <parameter name="java.naming.provider.url">
   repository/conf/jndi.properties</parameter>
  <parameter name="transport.jms.DestinationType">topic</parameter>
  <parameter name="transport.jms.Destination">HQ.Store_2</parameter>
  <description/>
  </proxy>
topic.Root.Node2=Root.Node2 订阅者是否可以订阅层次结构中的多个主题,并且其访问权限由用户和角色控制

  connectionfactory.Node1TopicConnectionFactory = amqp://Node1:Node1@clientID/carbon?    
   brokerlist='tcp://localhost:5680'
   connectionfactory.Node2TopicConnectionFactory = amqp://Node2:Node2@clientID/carbon?    
   brokerlist='tcp://localhost:5680'
   connectionfactory.RootTopicConnectionFactory = amqp://Root1:Root1@clientID/carbon?  
   brokerlist='tcp://localhost:5680'

   topic.Root = Root
   topic.Root.Node1 = Root.Node1