2016-06-16 9 views
0

registrieren Dies ist die Sache. Ich kann eine ActiveMQ Warteschlange mit der folgenden Konfiguration verbrauchen:Dynamisch zu JMS-Warteschlange mit Spring MVC

<jms:listener-container 
    container-type="default" 
    connection-factory="connectionFactory" 
    acknowledge="auto"> 
<jms:listener destination="TEST.FOO" ref="simpleMessageListener" method="onMessage" /> 

Hier habe ich die Warteschlange am consumming „TEST.FOO“, aber ich möchte eine Warteschlange pro Benutzer konsumieren, nicht eine allgemeine für alle Benutzer, gibt es eine Möglichkeit, das zu tun ?.

Ich werde Ihre Hilfe wirklich zu schätzen wissen.

Vielen Dank im Voraus.

Antwort

0

Am Ende habe ich dies:

Authentication auth = SecurityContextHolder.getContext().getAuthentication(); 
      if (!(auth instanceof AnonymousAuthenticationToken)) { 
       final UserDetails userDetails = (UserDetails)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 
       camelContext.addRoutes(new RouteBuilder() { 
        public void configure() {    
         from("activemq:"+userDetails.getUsername()).routeId(userDetails.getUsername()).to("bean:queueHandler"); 
        } 
       });    
       camelContext.start();