activemq消息权限策略
在ActiveMQ发送消息的时候,可以通过MessageAuthorizationPolicy验证消息是否可以发送到消息消费者。package org.apache.activemq.security;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.command.Message;
/**
* A plugin to allow custom message-level security checks to be performed before
* a message is consumed.
*
*
*/
public inte易做图ce MessageAuthorizationPolicy {
/**
* Returns true if the given message is able to be dispatched to the connection
* performing any user
*
* @return true if the context is allowed to consume the message
*/
boolean isAllowedToConsume(ConnectionContext context, Message message);
}
设置消息生产者启动时候设置验证规则:
在消息生产者创建消息的时候创建消息的时候,设置消息的相关权限验证字段,便于发送消息。
@Override
protected BrokerService createBroker() throws Exception {
BrokerService answer = new BrokerService();
answer.setPersistent(false);
//设置消息权限验证策略
answer.setMessageAuthorizationPolicy(new MessageAuthorizationPolicy() {
public boolean isAllowedToConsume(ConnectionContext context, Message message) {
try {
Object value = message.getProperty("myHeader");
return "abc".equals(value);
}
catch (IOException e) {
System.out.println("Caught: " + e);
e.printStackTrace();
return false;
}
}
});
answer.addConnector(bindAddress);
return answer;
}
补充:综合编程 , 其他综合 ,