ActiveMQ中密码修改
1、在/conf/jetty.xml文件中的 <!– set authenticate=false to disable login –>
这个位置的authenticate 改成true新版本的默认都为true暂时不用修改
2、在/conf/jetty-realm.properties设置用户名和密码。格式—( 用户名:密码,用户组)。
改为admin:123321, admin然后正常登陆。
消息服务器broker安全设置
1、添加访问密码、在/conf/activemq.xml中的
更改credentials.properties文件
activemq.username=system
activemq.password=123321
user.username=zhao
user.password=123456
guest.password=password
然后修改activemq.xml在systemUsage标签之前加上
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/>
<authenticationUser username="${user.username}" password="${user.password}" groups="users"/>
<authenticationUser username="guest" password="${guest.password}" groups="guests"/>
</users>
</simpleAuthenticationPlugin>
</plugins>
注意:XML中不能有中文空格否则启动报错。
查看效果
原来代码
<?php
$queue = 'time1';
$msg = 'bar';
//生产者
try {
$stomp = new Stomp('tcp://localhost:61613');
while (true) {
$stomp->send($queue, $msg." ". date("Y-m-d H:i:s"));
sleep(1);
}
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}
更改代码为
<?php
$queue = 'time1';
$msg = 'bar';
//生产者
$username="zhao";
$password="123456";
try {
$stomp = new Stomp('tcp://localhost:61613',$username,$password);
while (true) {
$stomp->send($queue, $msg." ". date("Y-m-d H:i:s"));
sleep(1);
}
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}
消费端的代码
<?php
$queue = 'time1';
$username="zhao";
$password="123456";
try {
$stomp = new Stomp('tcp://localhost:61613',$username,$password);
$stomp->subscribe($queue);
while (true) {
if ($stomp->hasFrame()) {
$frame = $stomp->readFrame();
if ($frame != NULL) {
print "Received: " . $frame->body . " - time now is " . date("Y-m-d H:i:s"). "\n";
$stomp->ack($frame);
}
} else {
print "No frames to read\n";
}
}
} catch(\Exception $e) {
die('Connection failed: ' . $e->getMessage());
}
修改方式二
方式二、是使用JAAS(Java验证授权)身份验证和授权、修改的文件较多暂时不表示。
补充:activemq目录/conf下文件说明
activemq.xml
broker.ks
broker.ts
broker-localhost.cert
client.ks
client.ts
credentials.properties //broker连接使用的账号密码文件,明文密码
credentials-enc.properties ////broker连接使用的账号密码文件,加密的密码
groups.properties
jetty.xml
jetty-realm.properties //web console访问的账号密码
jmx.access //访问控制文件,用于限制JMX访问权限
jmx.password //JMX访问密码文件,用于设置JMX访问的密码
log4j.properties
logging.properties
login.config //JAAS认证使用的配置文件,用于指定使用users.properties和groups.properties文件
users.properties