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文件

更改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

注意: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
Last modification:January 22, 2020
如果觉得我的文章对你有用,请随意赞赏