- 在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 interface 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;
- }
activemq消息权限策略
最新推荐文章于 2024-01-28 14:33:49 发布