亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Spring Boot ActiveMQ如何設置訪問密碼

瀏覽:102日期:2023-08-29 17:56:31

Apache ActiveMQ是Apache出品,是最流行的,能力很強的開源消息總線。默認情況下,程序連接ActiveMQ是不需要密碼的,為了安裝起見,需要設置密碼,提高安全性。本文分享如何設置訪問ActiveMQ的賬號密碼。

小編使用的ActiveMQ版本是apache-activemq-5.15.13。

一、設置控制臺管理密碼

ActiveMQ使用的是jetty服務器,找到 ActiveMQ安裝目錄下的confjetty.xml文件:

<bean class='org.eclipse.jetty.util.security.Constraint'> <property name='name' value='BASIC' /> <property name='roles' value='admin' /> <!-- set authenticate=false to disable login --> <property name='authenticate' value='true' /></bean>

注意:authenticate的屬性默認為'true',登錄管理界面時需要輸入賬戶和密碼;如果是“false”,需要改為'true'。

修改管理界面登錄時的用戶名和密碼,在conf/jetty-realm.properties文件中添加用戶

## ---------------------------------------------------------------------------## Licensed to the Apache Software Foundation (ASF) under one or more## contributor license agreements. See the NOTICE file distributed with## this work for additional information regarding copyright ownership.## The ASF licenses this file to You under the Apache License, Version 2.0## (the 'License'); you may not use this file except in compliance with## the License. You may obtain a copy of the License at#### http://www.apache.org/licenses/LICENSE-2.0#### Unless required by applicable law or agreed to in writing, software## distributed under the License is distributed on an 'AS IS' BASIS,## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.## See the License for the specific language governing permissions and## limitations under the License.## ---------------------------------------------------------------------------# Defines users that can access the web (console, demo, etc.)# username: password [,rolename ...]# admin: admin, admin# user: user, userwiener: wiener1237, admin

配置信息按順序解釋,分別是:用戶名、密碼、角色名

二、消息生產(chǎn)者和消費者密碼認證

在confactivemq.xml中broker 標簽最后添加生產(chǎn)者和消費者密碼認證信息:

<!-- destroy the spring context on shutdown to stop jetty --> <shutdownHooks> <bean xmlns='http://www.springframework.org/schema/beans' /> </shutdownHooks> <!-- add plugins --> <plugins> <simpleAuthenticationPlugin><users> <authenticationUser username='${activemq.username}' password='${activemq.password}' groups='users,admins'/></users> </simpleAuthenticationPlugin> </plugins> </broker>

activemq.username和activemq.password的值在文件credentials.properties中配置,見如下步驟。

設置用戶名密碼,文件在confcredentials.properties

## ---------------------------------------------------------------------------## Licensed to the Apache Software Foundation (ASF) under one or more## contributor license agreements. See the NOTICE file distributed with## this work for additional information regarding copyright ownership.## The ASF licenses this file to You under the Apache License, Version 2.0## (the 'License'); you may not use this file except in compliance with## the License. You may obtain a copy of the License at#### http://www.apache.org/licenses/LICENSE-2.0#### Unless required by applicable law or agreed to in writing, software## distributed under the License is distributed on an 'AS IS' BASIS,## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.## See the License for the specific language governing permissions and## limitations under the License.## ---------------------------------------------------------------------------# Defines credentials that will be used by components (like web console) to access the broker# activemq.username=system# activemq.password=manager# guest.password=passwordactivemq.username=wieneractivemq.password=wiener1237guest.password=password

三、Java端配置用戶名密碼

驗證代碼是在《【Spring Boot】ActiveMQ 發(fā)布/訂閱消息模式介紹》的基礎上做重構,除了新增類ActiveMQConfig之外,修改部分均用紅色字體標注。配置application.properties連接信息:

## URL of the ActiveMQ broker. Auto-generated by default. For instance `tcp://localhost:61616`# failover:(tcp://localhost:61616,tcp://localhost:61617)# tcp://localhost:61616spring.activemq.broker-url=tcp://localhost:61616spring.activemq.in-memory=truespring.activemq.pool.enabled=false#默認值false,表示point to point(點到點)模式,true時代表發(fā)布訂閱模式,需要手動開啟spring.jms.pub-sub-domain=truespring.activemq.user=wienerspring.activemq.password=wiener1237

在項目中配置 ActiveMQ連接屬性,新增ActiveMQConfig類:

import org.apache.activemq.ActiveMQConnectionFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.jms.config.DefaultJmsListenerContainerFactory;import org.springframework.jms.config.JmsListenerContainerFactory;/*** 配置 ActiveMQ** @author east7* @date 2020/6/23 11:27*/@Configurationpublic class ActiveMQConfig { @Value('${spring.activemq.user}') private String usrName; @Value('${spring.activemq.password}') private String password; @Value('${spring.activemq.broker-url}') private String brokerUrl; @Bean public ActiveMQConnectionFactory connectionFactory() { System.out.println('password =========== ' + password); return new ActiveMQConnectionFactory(usrName, password, brokerUrl); } /** * 設置點對點模式,和下面的發(fā)布訂閱模式二選一即可 * @param connectionFactory * @return */ @Bean public JmsListenerContainerFactory<?> jmsListenerContainerQueue(ActiveMQConnectionFactory connectionFactory){ DefaultJmsListenerContainerFactory bean = new DefaultJmsListenerContainerFactory(); bean.setConnectionFactory(connectionFactory); return bean; } @Bean public JmsListenerContainerFactory<?> jmsListenerContainerTopic(ActiveMQConnectionFactory connectionFactory){ //設置為發(fā)布訂閱模式, 默認情況下使用生產(chǎn)消費者方式 DefaultJmsListenerContainerFactory bean = new DefaultJmsListenerContainerFactory(); bean.setPubSubDomain(true); bean.setConnectionFactory(connectionFactory); return bean; }}

bean.setPubSubDomain(true)配置會覆蓋properties文件中spring.jms.pub-sub-domain的屬性值,故可以在properties不設置spring.jms.pub-sub-domain屬性。另外,這種配置方式可以在系統(tǒng)中同時使用點對點和發(fā)布/訂閱兩種消息模式。修改訂閱者:

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.jms.annotation.JmsListener;import org.springframework.stereotype.Component;import javax.jms.JMSException;/*** 消費者*/@Componentpublic class Subscriber1 { private static Logger logger = LoggerFactory.getLogger(Subscriber1.class); /** * 訂閱 topicListener1,僅僅加入containerFactory即可 * * @param text * @throws JMSException */ @JmsListener(destination = 'topicListener1', containerFactory = 'jmsListenerContainerTopic') public void subscriber(String text) { logger.info('Subscriber1 收到的報文:{}', text); }}

containerFactory 的值 'jmsListenerContainerTopic' 會自動匹配到ActiveMQConfig中的函數(shù)JmsListenerContainerFactory<?> jmsListenerContainerTopic(ActiveMQConnectionFactory connectionFactory)。 Subscriber2同樣修改即可,代碼省略。如果containerFactory 的值設置為jmsListenerContainerQueue,則開啟了點到點消息模式。

測試函數(shù)還可以使用topicTest()。下面提供一個新的測試途徑——在controller中測試。新增方法

@Autowiredprivate Publisher publisher;@GetMapping('/sendTopicMsg')public String sendTopicMsg(String msg) { // 指定消息發(fā)送的目的地及內容 Destination destination = new ActiveMQTopic('topicListener2'); for (int i = 0; i < 8; i++) { publisher.publish(destination, msg + i); } return msg + ' 發(fā)送完畢';}

執(zhí)行結果省略。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Spring
相關文章:
主站蜘蛛池模板: 欧美三级成版人版在线观看 | 草草免费观看视频在线 | 国产不卡一区二区视频免费 | 日韩欧美一级毛片视频免费 | 成人免费男女视频网站慢动作 | 久99久爱精品免费观看视频 | 成人在线亚洲 | 国产乱人伦精品一区二区 | 黄色免费看视频 | 亚洲国产欧美在线 | 亚洲图片偷拍自拍 | 香蕉视频 在线播放 | 国产精品久久久久免费 | 小泽玛利亚在线精品一区二区 | 中文字幕国产综合 | 精品一久久 | 日韩一区二区精品久久高清 | 亚洲精品国产第一区第二区国 | 欧美日韩成人午夜免费 | 中文永久免费观看网站 | 在线观看国产免费高清不卡 | a色毛片免费视频 | 老年人一级毛片 | 黄色毛片大全 | 久久久久久极精品久久久 | 黄色高清在线观看 | 欧美日韩a∨毛片一区 | 国产男女乱淫真视频全程播放 | 久久久久国产精品免费看 | 国产美女在线精品免费观看 | 亚洲欧美精品国产一区色综合 | 黑人巨大两根一起挤进来 | 精品国产福利在线观看91啪 | 国产福利精品在线 | 天堂tv亚洲tv日本tv欧美人tv | 国产精品久久久久久久久福利 | 国产永久免费高清在线观看视频 | 91久久综合九色综合欧美亚洲 | 国产成人一区二区三区视频免费 | 国产成人精品综合 | 精品一区二区三区视频在线观看 |