Jms WSO Message Broker分层主题的基于角色的访问控制
我最近开始尝试通过WSO2的MB在WSO2 ESB之间进行消息交换,以满足需求。创建了一个JMS发送者代理服务,该服务基于SOAP输入(使用的头属性和defaultEndpoint)连接端点URL 在Message Broker上: 已将分层主题设置为 根| 节点1 节点2 有3个用户及其特定角色,分别为Root、Node1、Node2。要求是节点1应该能够同时订阅节点1和根,类似地,对于节点2,只有节点2和根。 问题是,当创建代理服务时,订阅者只能将其设置为只订阅一个节点(Root或Node1或Node2)。已尝试将目标设置为根。#但随后所有节点都已订阅(即使节点用户未根据基于角色的主题访问设置为订阅其他节点)。以下是订阅服务器的代码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
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