当前位置:编程学习 > 网站相关 >>

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 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; 

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,