Christian, Thanks for pointing me in the right direction. Here's my code that seems to work so others can use it. That said, I'm really nervous about using reflection to get at the brokerConnectionStates collection. There must be a better way to do this...
@SuppressWarnings("unchecked") public void onMessage(Message message){ if (message instanceof ActiveMQMessage) { ActiveMQMessage activeMessage = (ActiveMQMessage) message; Object command = activeMessage.getDataStructure(); if (command instanceof ConsumerInfo) { System.out.println("A consumer subscribed to a topic or queue: " + command); } else if (command instanceof RemoveInfo) { RemoveInfo removeInfo = (RemoveInfo) command; if (removeInfo.isConsumerRemove()) { System.out.println("A consumer unsubscribed from a topic or queue"); } else { System.out.println("RemoveInfo, a connection was closed: " + command); } } else if (command instanceof ConnectionInfo) { //Retrieve this Connection so we can get the username and password TransportConnector connector = NeutroGate.broker.getConnectorByName("websocket"); List<TransportConnection> connections = connector.getConnections(); for (TransportConnection c : connections) { // use reflection to get at field Field f = null; try { f = TransportConnection.class.getDeclaredField("brokerConnectionStates"); } catch (NoSuchFieldException | SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } f.setAccessible(true); Map<ConnectionId, ConnectionState> context = null; try { context = (Map<ConnectionId, ConnectionState>) f.get(c); } catch (IllegalArgumentException | IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } ConnectionId commandCid = ((ConnectionInfo) command).getConnectionId(); for (ConnectionId id : context.keySet()) { if (id.equals(commandCid)) { String username = context.get(id).getInfo().getUserName(); String password = context.get(id).getInfo().getPassword(); System.out.println("ConnectionInfo, a new connection was made to " + username + ":" + password + ": " + command); } } } } else { System.out.println("Unknown command: " + command); } } -- View this message in context: http://activemq.2283324.n4.nabble.com/How-can-I-retrieve-a-Stomp-username-when-a-new-Connection-is-made-tp4659949p4660019.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.