`
shutiao2008
  • 浏览: 209205 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ActiveMQ Web控制台的安全性

阅读更多
安装好ActiveMQ后,其默认没有任何安全控制,任何人都可以通过8161端口登录Web控制台,任何人都可以通过61616端口发送和接收JMS消息。在实际应用中,需要由我们自己对ActiveMQ进行安全性配置。

首先讲Web控制台的安全性。

ActiveMQ默认使用Jetty作为内嵌的Web服务器。当然,你也可以把ActiveMQ的部署到Tomcat、JBoss等其他服务器中。在这里,我们采用默认内嵌的Jetty,并使用JAAS来实现安全控制。

1、把 jetty-plus-6.1.9.jar 放到 ${activemq.base}/lib/web/中。如果你手上没有jetty-plus-6.1.9.jar文件,可以从Jetty的官方网站下载,下载Jetty6.1.9版本,解压后,在lib里可以找到该文件。

2、在${activemq.base}/conf/jetty.xml里,加上这么一段:

<userRealms>
    <jaasUserRealm name="adminRealm" loginModuleName="adminLoginModule" />
</userRealms>

3、在${activemq.base}/conf/目录下新建一个login.config文件,内容如下:

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

4、在${activemq.base}/conf/目录下新建一个login.properties文件,内容如下:

myusername:mypassword,admins

该文件的格式是:用户名:密码,角色

5、在${activemq.base}/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>

6、最后,修改${activemq.base}/bin/activemq文件,把配置文件添加到环境变量。把ACTIVEMQ_OPTS修改为:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS $SUNJMX $SSL_OPTS -Djava.security.auth.login.config=${ACTIVEMQ_BASE}/conf/login.config"
配置完毕。重启ActiveMQ,在浏览器里打开http://localhost:8161/admin,就会弹出一个对话框,要求输入用户名和密码。

分享到:
评论
6 楼 xnfriday 2013-09-18  
只写怎么配,却没有写为什么这么配...
5 楼 linhui_dragon 2013-02-04  
请求大家帮忙,为什么启动报错
4 楼 linhui_dragon 2013-02-04  
按照楼上 shutiao2008 说的,一步一步配置后,activemq.bat 还是启动报错啊,找不到class:


wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | java.lang.NoClassDefFoundError: org/tanukisoftware/wrapper/WrapperSim
pleApp
jvm 1    | Caused by: java.lang.ClassNotFoundException: org.tanukisoftware.wrapp
er.WrapperSimpleApp
jvm 1    |      at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
jvm 1    |      at java.security.AccessController.doPrivileged(Native Method)
jvm 1    |      at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
jvm 1    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
jvm 1    |      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

jvm 1    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
jvm 1    | Could not find the main class: org.tanukisoftware.wrapper.WrapperSimp
leApp.  Program will exit.
wrapper  | JVM exited while loading the application.
wrapper  | Launching a JVM...
jvm 2    | java.lang.NoClassDefFoundError: org/tanukisoftware/wrapper/WrapperSim
pleApp
jvm 2    | Caused by: java.lang.ClassNotFoundException: org.tanukisoftware.wrapp
er.WrapperSimpleApp
jvm 2    |      at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
jvm 2    |      at java.security.AccessController.doPrivileged(Native Method)
jvm 2    |      at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
jvm 2    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
jvm 2    |      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

jvm 2    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
jvm 2    | Could not find the main class: org.tanukisoftware.wrapper.WrapperSimp
leApp.  Program will exit.
wrapper  | JVM exited while loading the application.
wrapper  | Launching a JVM...
jvm 3    | java.lang.NoClassDefFoundError: org/tanukisoftware/wrapper/WrapperSim
pleApp
jvm 3    | Caused by: java.lang.ClassNotFoundException: org.tanukisoftware.wrapp
er.WrapperSimpleApp
jvm 3    |      at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
jvm 3    |      at java.security.AccessController.doPrivileged(Native Method)
jvm 3    |      at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
jvm 3    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
jvm 3    |      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

jvm 3    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
jvm 3    | Could not find the main class: org.tanukisoftware.wrapper.WrapperSimp
leApp.  Program will exit.
wrapper  | JVM exited while loading the application.
wrapper  | Launching a JVM...
jvm 4    | java.lang.NoClassDefFoundError: org/tanukisoftware/wrapper/WrapperSim
pleApp
jvm 4    | Caused by: java.lang.ClassNotFoundException: org.tanukisoftware.wrapp
er.WrapperSimpleApp
3 楼 smile_wangchun 2012-11-12  
[/color][color=brown]
[img][/img]
2 楼 smile_wangchun 2012-11-12  
fjjiaboming 写道
版本也不写....

[b][/b][i][/i]
引用
[img][/img][url][/url][flash=200,200][/flash]
1 楼 fjjiaboming 2011-07-13  
版本也不写....

相关推荐

Global site tag (gtag.js) - Google Analytics