org.yamcs.security.ArtemisAuthInterceptor Maven / Gradle / Ivy
package org.yamcs.security;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.apache.activemq.artemis.api.core.ActiveMQException;
import org.apache.activemq.artemis.api.core.Interceptor;
import org.apache.activemq.artemis.api.core.Message;
import org.apache.activemq.artemis.core.protocol.core.Packet;
import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.CreateSessionMessage;
import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionCloseMessage;
import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionSendMessage;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Caches the username from an incoming CreateSessionMessage against its
* connection, and injects the username into all subsequent Messages from the
* connection until a SessionCloseMessage is sent by the client.
*
* When a CreateSessionMessage or a SessionCloseMessage is received, the cache
* is also flushed to remove all connections which have a disconnected status.
*
* @author atu
*
*/
public class ArtemisAuthInterceptor implements Interceptor {
public static final String USERNAME_PROPERTY = "username";
static Logger log = LoggerFactory.getLogger("org.yamcs.security.ActiveMQAuthInterceptor");
private Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy