Hi Domenico,

thank you for the suggestion, but unfortunately it does not work. I am using
slightly modified interceptor code:

public class MQTTLoginFilterInterceptor implements MQTTInterceptor {
   @Override
   public boolean intercept(final MqttMessage mqttMessage,
RemotingConnection connection) {
       System.out.println("MQTT intercept called");

        if (mqttMessage instanceof MqttConnectMessage){
            MqttConnectMessage connectMessage =
(MqttConnectMessage)mqttMessage;

            if (connectMessage.payload().userName() != null
                && connectMessage.payload().userName().compareTo("admin") ==
0){
                    System.out.println("reject admin login");
                    return false;
            }
            else{
                System.out.println("allow user login");
            }
        }

      return true;
   }
}

Log output on admin login:
MQTT intercept called
reject admin login
MQTT intercept called

Logs shows that we can catch admin login, but returning false from
interceptor, after getting MqttConnectMessage, does not have any effect.
With this interceptor I can login as admin, subscribe and do any action
allowed. Do you have any idea?




--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html

Reply via email to