Advertisement
Guest User

Untitled

a guest
Sep 28th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.43 KB | None | 0 0
  1. public class Server implements MessageListener {
  2. private static int ackMode;
  3. private static String messageQueueName;
  4. private static String messageBrokerUrl;
  5.  
  6. private Session session;
  7. private boolean transacted = false;
  8. private MessageProducer replyProducer;
  9. private String username ="username";
  10. private String password ="password";
  11. private SimpleAuthenticationPlugin simpleAuthenticationPlugin;
  12.  
  13. private BrokerService brokerService;
  14.  
  15. static {
  16. messageBrokerUrl = "tcp://localhost:61616";
  17. messageQueueName = "client.messages";
  18. ackMode = Session.AUTO_ACKNOWLEDGE;
  19. }
  20.  
  21. public void startBroker() throws Exception {
  22. brokerService = new BrokerService();
  23. brokerService.setPersistent(false);
  24. brokerService.setDeleteAllMessagesOnStartup(true);
  25. brokerService.setAdvisorySupport(false);
  26. brokerService.getManagementContext().setCreateConnector(false);
  27.  
  28. brokerService.getManagementContext().setCreateMBeanServer(false);
  29. brokerService.addConnector(messageBrokerUrl);
  30.  
  31. ArrayList<BrokerPlugin> plugins = new ArrayList<BrokerPlugin>();
  32.  
  33. BrokerPlugin authenticationPlugin = configureAuthentication();
  34. if (authenticationPlugin != null) {
  35. plugins.add(configureAuthorization());
  36. }
  37.  
  38. BrokerPlugin authorizationPlugin = configureAuthorization();
  39. if (authorizationPlugin != null) {
  40. plugins.add(configureAuthentication());
  41. }
  42. BrokerPlugin[] brokerPluginsArray = new
  43. BrokerPlugin[plugins.size()]; //(BrokerPlugin[])plugins.toArray();
  44. brokerPluginsArray = plugins.toArray(brokerPluginsArray);
  45. brokerService.setPlugins(brokerPluginsArray);
  46. brokerService.start();
  47. brokerService.waitUntilStarted();
  48.  
  49. }
  50.  
  51. protected BrokerPlugin configureAuthentication() throws Exception {
  52. List<AuthenticationUser> users = new
  53. ArrayList<AuthenticationUser>();
  54. users.add(new AuthenticationUser("system", "manager",
  55. "users,admins"));
  56. users.add(new AuthenticationUser("user", "password", "users"));
  57. users.add(new AuthenticationUser("guest", "password",
  58. "guests"));
  59. SimpleAuthenticationPlugin authenticationPlugin = new
  60. SimpleAuthenticationPlugin(users);
  61. authenticationPlugin.setUsers(users);
  62.  
  63. return authenticationPlugin;
  64. }
  65.  
  66. protected BrokerPlugin configureAuthorization() throws Exception {
  67.  
  68. @SuppressWarnings("rawtypes")
  69. List<DestinationMapEntry> authorizationEntries = new
  70. ArrayList<DestinationMapEntry>();
  71.  
  72. AuthorizationEntry entry = new AuthorizationEntry();
  73. entry.setQueue(">");
  74. entry.setRead("admins");
  75. entry.setWrite("admins");
  76. entry.setAdmin("admins");
  77. authorizationEntries.add(entry);
  78. entry = new AuthorizationEntry();
  79. entry.setQueue("USERS.>");
  80. entry.setRead("users");
  81. entry.setWrite("users");
  82. entry.setAdmin("users");
  83. authorizationEntries.add(entry);
  84. entry = new AuthorizationEntry();
  85. entry.setQueue("GUEST.>");
  86. entry.setRead("guests");
  87. entry.setWrite("guests,users");
  88. entry.setAdmin("guests,users");
  89. authorizationEntries.add(entry);
  90. entry = new AuthorizationEntry();
  91. entry.setTopic(">");
  92. entry.setRead("admins");
  93. entry.setWrite("admins");
  94. entry.setAdmin("admins");
  95. authorizationEntries.add(entry);
  96. entry = new AuthorizationEntry();
  97. entry.setTopic("USERS.>");
  98. entry.setRead("users");
  99. entry.setWrite("users");
  100. entry.setAdmin("users");
  101. authorizationEntries.add(entry);
  102. entry = new AuthorizationEntry();
  103. entry.setTopic("GUEST.>");
  104. entry.setRead("guests");
  105. entry.setWrite("guests,users");
  106. entry.setAdmin("guests,users");
  107. authorizationEntries.add(entry);
  108. entry = new AuthorizationEntry();
  109. entry.setTopic("ActiveMQ.Advisory.>");
  110. entry.setRead("guests,users");
  111. entry.setWrite("guests,users");
  112. entry.setAdmin("guests,users");
  113. authorizationEntries.add(entry);
  114.  
  115. TempDestinationAuthorizationEntry tempEntry = new
  116. TempDestinationAuthorizationEntry();
  117. tempEntry.setRead("admins");
  118. tempEntry.setWrite("admins");
  119. tempEntry.setAdmin("admins");
  120.  
  121. DefaultAuthorizationMap authorizationMap = new
  122. DefaultAuthorizationMap(authorizationEntries);
  123.  
  124. authorizationMap.setTempDestinationAuthorizationEntry(tempEntry);
  125. AuthorizationPlugin authorizationPlugin = new
  126. AuthorizationPlugin(authorizationMap);
  127.  
  128. return authorizationPlugin;
  129. }
  130.  
  131. public Server() {
  132. try {
  133. startBroker();
  134. //AuthorizationMap
  135. //AuthorizationPlugin authorizationPlugin
  136. //This message broker is embedded
  137. } catch (Exception e) {
  138. System.out.println("Exception: "+e.getMessage());
  139. }
  140. this.setupMessageQueueConsumer();
  141. }
  142.  
  143. private void setupMessageQueueConsumer() {
  144. ActiveMQConnectionFactory connectionFactory = new
  145. ActiveMQConnectionFactory(messageBrokerUrl);
  146. connectionFactory.setUserName("system");
  147. connectionFactory.setPassword("manager");
  148. connectionFactory.setExclusiveConsumer(true);
  149.  
  150.  
  151. Connection connection;
  152. try {
  153. //connection = connectionFactory.createConnection(username,
  154. password);
  155. connection = connectionFactory.createConnection();
  156. connection.start(); // This line thows exception
  157. this.session = connection.createSession(this.transacted,
  158. ackMode);
  159. Destination adminQueue =
  160. this.session.createQueue(messageQueueName);
  161.  
  162. //Setup a message producer to respond to messages from
  163. clients, we will get the destination
  164. //to send to from the JMSReplyTo header field from a Message
  165. //this.replyProducer = this.session.createProducer(null);
  166.  
  167. //this.replyProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
  168.  
  169. //Set up a consumer to consume messages off of the admin
  170. queue
  171. MessageConsumer consumer =
  172. this.session.createConsumer(adminQueue);
  173. consumer.setMessageListener(this);
  174.  
  175. // new BufferedReader(new InputStreamReader(System.in)).readLine();
  176.  
  177. } catch (JMSException e) {
  178. System.out.println(e.getStackTrace().toString());
  179. } catch (Exception e) {
  180. e.printStackTrace();
  181. }
  182. }
  183.  
  184. public void onMessage(Message message) {
  185. System.out.println("I got msg: "+message);
  186. }
  187.  
  188. public static void main(String[] args) {
  189. new Server();
  190. System.out.println("I'm done. END");
  191. }
  192. }
  193.  
  194. public class ActiveMQProducer {
  195.  
  196. private static String activeMQconnectionUri = "tcp://localhost:61616";
  197. private static ActiveMQConnectionFactory connectionFactory;
  198. private BrokerService broker;
  199. private static Connection receiverConnection;
  200. private static Session receiverSession;
  201. private static String username ="username";
  202. private static String password ="password";
  203.  
  204.  
  205. public static void main(String[] args) {
  206. try {
  207. connectionFactory = new ActiveMQConnectionFactory(activeMQconnectionUri);
  208. connectionFactory.setUserName("system");
  209. connectionFactory.setPassword("manager");
  210. //connectionFactory.setUserName(username);
  211. // connectionFactory.setPassword(password);
  212. receiverConnection = connectionFactory.createConnection();
  213. receiverSession = receiverConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
  214. receiverConnection.start();
  215.  
  216. Connection connection = connectionFactory.createConnection();
  217. connection.start();
  218. // Now create a Session
  219. Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
  220. Queue queue = session.createQueue("client.messages");
  221. //the Session to the Topic or Queue
  222. MessageProducer producer = session.createProducer(queue);
  223. producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
  224. // Create a messages for the current climate
  225. String text = "group_msg testing 1";
  226. TextMessage message = session.createTextMessage(text);
  227. // Send the message to topic
  228. System.out.println("I am sending to the queue: " + text);
  229. producer.send(message);
  230. // Do the cleanup
  231. session.close();
  232. connection.close();
  233. } catch (Exception e) {
  234. System.out.println(e.getCause());
  235. System.out.println(e.getMessage());
  236. System.out.println(e.initCause(e));
  237. }
  238. }
  239. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement