activemq分为控制端和客户端,下面分别介绍安全认证配置方法。

1.控制端安全配置

(1). ActiveMQ目录conf下找到jetty.xml:

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

含义:

<property name="authenticate" value="true" />      true:需要认证; false:不需要认证

(2). ActiveMQ目录conf下找到jetty-realm.properties

# username: password [,rolename ...]
admin: admin123, admin
user: user, user

说明:

第一个admin,为认证用户名。 
第二个admin123,为认证密码。 
第三个admin,为角色。

(3).  重启ActiveMQ验证是否需要认证
重启activemq后,访问:http://127.0.0.1:8161/admin/,弹出http基本认证框,这时候认证生效。

1.客户端安全配置

(1). 解压目录/conf/activemq.xml的broken中添加:

        <plugins>
<!-- use JAAS to authenticate using the login.config file on the classpath to configure JAAS -->
       <!-- 添加jaas认证插件activemq在login.config里面定义,详细见login.config--> <jaasAuthenticationPlugin configuration="activemq" />
            <!--  lets configure a destination based authorization mechanism -->
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry topic=">" read="admins" write="admins" admin="admins" />
<authorizationEntry queue=">" read="admins" write="admins" admin="admins" />
<!--authorizationEntry topic="FirstTopic" read="smeall,smeadmin" write="smeadmin" admin="smeall,smeadmin" /-->
<authorizationEntry topic="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins"/>
<authorizationEntry queue="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins"/>
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
1.<jaasAuthenticationPlugin configuration="activemq" />指定了使用JAAS插件管理权限,至于configuration="activemq"是在login.conf文件里定义的
2.<authorizationEntry topic="FirstTopic" read="smeall,smeadmin" write="smeadmin" admin="smeall,smeadmin" />指定了具体的Topic/Queue与用户组的授权关系
3.<authorizationEntry topic="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins"/>这个是必须的配置,不能少
备注:上述2中指定了用户组和 队列和主题 之间的授权关系。 一开始我以为是授权用户组与管道之间的关系后来发现错了的,是授权用户组与队列的关系。那么对于刚接触activemq的小白来说,你还不知道消息队列和主题都是通过管理URL进行添加删除的。

若是集群则broken中继续添加:

        <networkConnectors>
<networkConnector userName="用户名" password="密码" uri="static:(tcp://localhost:61616)" duplex="true"/>
</networkConnectors>

此配置可以忽略掉

(2). 解压目录/conf/login.config中:

 activemq{
org.apache.activemq.jaas.PropertiesLoginModule required
debug=true
org.apache.activemq.jaas.properties.user="users.properties"
org.apache.activemq.jaas.properties.group="groups.properties";
};

(3). 解压目录/conf/groups.properties中:

admins=用户名

(4). 解压目录/conf/users.properties中:

用户名=密码

三。其他配置说明

除了安全验证的配置需要我们理解,还有一部分配置需要理解:

        <transportConnectors>
<!-- DOS protection, limit concurrent connections to and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://10.8.0.1:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://10.8.0.1:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://10.8.0.1:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://10.8.0.1:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://10.8.0.1:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
</transportConnectors>

上述中的

name="openwire" uri="tcp://10.8.0.1:61616?ma

name="amqp" uri="amqp://10.8.0.1:5672?max
其中 tcp:// 和 amqp:// 这都是指协议,而name是随意定义的,但是这个name是在管理url界面中显示的,如图:


# cat /etc/hosts
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 quanli_dev02.fistforward.com
10.8.0.1 quanli_dev02.fistforward.com
# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
PEERNTP=no
GATEWAY=10.8.3.253
HOSTNAME=quanli_dev02.fistforward.com
												

消息中间件activemq-5.14.1安全验证配置的更多相关文章

  1. 消息中间件ActiveMQ使用详解

    消息中间件ActiveMQ使用详解 一.消息中间件的介绍 介绍 ​ 消息队列 是指利用 高效可靠 的 消息传递机制 进行与平台无关的 数据交流,并基于 数据通信 来进行分布式系统的集成. 特点(作用) ...

  2. 关于ActiveMQ的几种集群配置

    ActiveMQ的几种集群配置. Queue consumer clusters 此集群让多个消费者同时消费一个队列,若某个消费者出问题无法消费信息,则未消费掉的消息将被发给其他正常的消费者,结构图如 ...

  3. ActiveMQ的几种集群配置

    ActiveMQ是一款功能强大的消息服务器,它支持许多种开发语言,例如Java, C, C++, C#等等.企业级消息服务器无论对服务器稳定性还是速度,要求都很高,而ActiveMQ的分布式集群则能很 ...

  4. C#微信开发-微信JS-SDK(1)之通过config接口注入权限验证配置

    官方文档是微信JS-SDK的使用步骤http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#JSSDK.E4.BD.B ...

  5. ActiveMq+zookeeper+levelDB集群整合配置

    ActiveMq+zookeeper+levelDB集群整合配置 环境:linux系统,jdk1.7  三台linux系统电脑.我这里使用一台window,分别远程3台linux电脑.三台电脑的ip分 ...

  6. nginx的启动、停止、重载配置、验证配置

    [1]启动 启动nginx系统方式: (1)命令 nginx -c /usr/local/nginx/conf/nginx.conf 说明:-c 参数指定运行nginx系统的自定义配置文件. 若加:使 ...

  7. Ubuntu下SSH无密码验证配置

    前言 SSH为Secure Shell 的缩写,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.越来越多的小伙伴们使用远程登录,而ssh安全性无疑是很高的,那么我们现在来看看如何实现ss ...

  8. 2.14 加载Firefox配置

    2.14 加载Firefox配置(略,已在2.1.8讲过,请查阅2.1.8节课) 回到顶部 2.14-1 加载Chrome配置 一.加载Chrome配置chrome加载配置方法,只需改下面一个地方,u ...

  9. Python2.7.14安装和pip配置安装及虚拟环境搭建

    目录 前言 1 Python2.7.14安装 2 pip配置安装 3 虚拟环境安装   前言 今天在搭建阿里云服务器,需要安装Python相关环境,之前在本机都已经安装过两遍,今天又来安装一遍,安装具 ...

随机推荐

  1. C51寄存器

    EA   全局中断允许位 ET2 定时器/计时器2中断允许位 ES 串行口中断允许位 ET1 定时器/计时器1中断允许位 EX1 外部中断1中断允许位 ET0 定时器/计时器0中断允许位 EX0 外部 ...

  2. 线段树 + 区间更新 ----- HDU 4902 : Nice boat

    Nice boat Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tot ...

  3. 微信SDK 报错 invalid url domanin

    刚开始我在安全JS域名下填写: Http://hgj123.8.yydns.pw   带了Http 在微信中开打自己写好demo.报invalid url domanin 说我的无效URL. 然后我在 ...

  4. 获取最后插入的id另外方法

    在此记录备忘. CREATE TABLE tb_test(custid INT IDENTITY(1,1) NOT NULL , name nvarchar(200) NOT NULL) DECLAR ...

  5. 17个CSS知识点整理

    1.对WEB标准以及W3C的理解与认识 标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率:使用外链css和js脚本.结构行为表现的分离.文件下载与页面速度更快:内容能被更多的用户所访问.内容能被更 ...

  6. Apache Storm内部原理分析

    转自:http://shiyanjun.cn/archives/1472.html 本文算是个人对Storm应用和学习的一个总结,由于不太懂Clojure语言,所以无法更多地从源码分析,但是参考了官网 ...

  7. python 百度图片爬虫

    # -*- coding:utf-8 -*- #https://blog.csdn.net/qq_32166627/article/details/60882964 import requests i ...

  8. [转]浅谈Android五大布局(一)——LinearLayout、FrameLayout和AbsoulteLayout

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLay ...

  9. 【转】【Android】Android Studio打包全攻略

    项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件).1. 创建签名文件2. 填写好签名参数3. 生成APK注意:签名的密码和密匙的密码注意保管,不要忘 ...

  10. (笔记)Linux内核中内存相关的操作函数

    linux内核中内存相关的操作函数 1.kmalloc()/kfree() static __always_inline void *kmalloc(size_t size, gfp_t flags) ...