`
flyer2010
  • 浏览: 356282 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ActiveMQ 5.2的安全性配置

阅读更多
  最近在研究activeMQ,在按照官网的例子和一些资料写了些小实例,并打算用它来进行发送邮件使用,使用的过程中涉及到了安全性的问题,我本是用的最新版本activemq 5.3.2但是按照官网的资料,对这个版本的安全性配置提及很少,倒是没有出来的版本5.4.0里面的配置涉及到了,下载了一个5.4.0后发现果然配置起来相当简单。但是考虑到其还未发布,因此我对低一点版本的5.2.0进行了一个配置.

下文为ActiveMQ5.2配置的过程。 
参考:http://activemq.apache.org/security.html


一、JMS服务安全性

1.打开activemq.xml,在<broker></broker>中增加

<plugins>
      <!--  use JAAS to authenticate using the login.config file on the classpath to configure JAAS -->
      <jaasAuthenticationPlugin configuration="activemq-domain" />

      <!--  lets configure a destination based authorization mechanism -->
      <authorizationPlugin>
        <map>
          <authorizationMap>
            <authorizationEntries>
              <authorizationEntry queue=">" read="admins" write="admins" admin="admins" />
              <authorizationEntry queue="USERS.>" read="users" write="users" admin="users" />
              <authorizationEntry queue="GUEST.>" read="guests" write="guests,users" admin="guests,users" />
             
              <authorizationEntry topic=">" read="admins" write="admins" admin="admins" />
              <authorizationEntry topic="USERS.>" read="users" write="users" admin="users" />
              <authorizationEntry topic="GUEST.>" read="guests" write="guests,users" admin="guests,users" />
             
              <authorizationEntry topic="ActiveMQ.Advisory.>" read="guests,users" write="guests,users" admin="guests,users"/>
            </authorizationEntries>
                      
          </authorizationMap>
        </map>
      </authorizationPlugin>
    </plugins>


2.在conf目录下增加 login.config、groups.properties、users.properties
login.config文件  内容如下:

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

groups.properties文件  内容如下:
admins=system

users.properties文件  内容如下:
system=manager

添加用户在users.properties文件下,group.properties为用户分组使用。
做好了如上的设置以后,程序再访问activeMQ的话就需要使用用户名和密码了。


二、管理控制台安全性

ActiveMQ缺省的管理是通过内置的jetty服务器,只要在浏览器中输入http://localhost:8161/admin,不需要登录,就可以对队列、主题及消息等进行管理,可以想象这非常不安全。
那么要解决管理控制台的安全性,除了通过修改管理端口号以及应用名称之外,最关键的也是需要进行配置,必须通过身份认证才能登录。
本文要说的方式主要是在不改变内置jetty的方式下,通过配置基本认证的方式来实现安全登录。


1.在activemq.xml中找到  <jetty xmlns="http://mortbay.com/schemas/jetty/1.0">,增加realm设置
   <userRealms>
       <jaasUserRealm name="adminRealm" loginModuleName="adminLoginModule">
      </jaasUserRealm>
   </userRealms>


  
2.在login.config增加如下配置:

adminLoginModule {
       org.mortbay.jetty.plus.jaas.spi.PropertyFileLoginModule required
       debug="true"
       file="${activemq.base}/conf/realm.properties";
   };


3.在conf中增加realm.properties文件,内容如下:
# 用户名:密码,角色
system:MD5:1d0258c2440a8d19e716292b231e3190,admins


4.把 jetty-plus-6.1.9.jar 放到 ${activemq.base}/lib/web/中

5.通过命令:java -cp jetty-6.1.9.jar;jetty-util-6.1.9.jar org.mortbay.jetty.security.Password system manager  可以修改密码的md5

6.打开webapps/admin/WEB-INF/web.xml,增加如下配置:
 
   <security-constraint>
       <web-resource-collection>
           <web-resource-name>adminRealm</web-resource-name>
           <url-pattern>/*</url-pattern>
       </web-resource-collection>
       <auth-constraint>
           <role-name>admins</role-name>
       </auth-constraint>
   </security-constraint>
   <login-config>
       <auth-method>BASIC</auth-method>
       <realm-name>adminRealm</realm-name>
   </login-config>

7.修改${activemq.base}/bin/activemq文件  找到ACTIVEMQ_OPTS,在后面追加:
%ACTIVEMQ_OPTS% %SUNJMX% %SSL_OPTS%  -Djava.security.auth.login.config=%ACTIVEMQ_BASE%/conf/login.config

配置完成后,当访问http://localhost:8161/admin/时,将会弹出窗口以让用户输入登录帐号和密码。


期待5.4.0的发布,按照我下载的5.4.0,其配置远远简单了,只要修改jetty.xml的一个
<property name="authenticate" value="true" />
即可,很简单http://activemq.apache.org/web-console.html上有介绍。 不过郁闷的是5.3.2没配置出来。
分享到:
评论
2 楼 guoyanwei_ok 2011-09-08  
你好,关于5.5 的配置解决了,不用麻烦了。
1 楼 guoyanwei_ok 2011-09-08  
你好 ,能帮写一份关于5.4 或者是5.5的安全配置吗? 我是英文盲,apache-activemq 官网上的帮助对我来说等于没有。如果可以,这里先谢过了。

相关推荐

    大型分布式网站架构与实践

     1.3.3 动态配置规则 39  1.3.4 ZooKeeper介绍与环境搭建 40  1.3.5 ZooKeeper API使用简介 43  1.3.6 zkClient的使用 47  1.3.7 路由和负载均衡的实现 50  1.4 HTTP服务网关 54  第2章 分布式系统基础设施 ...

    Spring in Action(第2版)中文版

    7.4.5强制web安全性 7.4.6确保一个安全的通道 7.5视图层安全 7.5.1有条件地渲染内容 7.5.2显示用户身份验证信息 7.6保护方法调用 7.6.1创建一个安全切面 7.6.2使用元数据保护方法 7.7小结 第8章spring和...

    Spring in Action(第二版 中文高清版).part2

    7.4.5 强制Web安全性 7.4.6 确保一个安全的通道 7.5 视图层安全 7.5.1 有条件地渲染内容 7.5.2 显示用户身份验证信息 7.6 保护方法调用 7.6.1 创建一个安全切面 7.6.2 使用元数据保护方法 7.7 小结 第8...

    Spring in Action(第二版 中文高清版).part1

    7.4.5 强制Web安全性 7.4.6 确保一个安全的通道 7.5 视图层安全 7.5.1 有条件地渲染内容 7.5.2 显示用户身份验证信息 7.6 保护方法调用 7.6.1 创建一个安全切面 7.6.2 使用元数据保护方法 7.7 小结 第8...

    java开源包1

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包11

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包2

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包3

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包6

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包5

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包10

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包4

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包8

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包7

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包9

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    java开源包101

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    Java资源包01

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

Global site tag (gtag.js) - Google Analytics