Jadual Kandungan
一、认证" >一、认证
二、授权" >二、授权
三、自定义安全插件" >三、自定义安全插件
Rumah Java javaTutorial 详解JMS 之 Active MQ的安全机制

详解JMS 之 Active MQ的安全机制

Jun 26, 2017 am 11:44 AM
active Keselamatan mekanisme

一、认证

认证(Authentication):验证某个实体或者用户是否有权限访问受保护资源。

MQ提供两种插件用于权限认证:
(一)、Simple authentication plug-in:直接把相关的权限认证信息配置到XML文件中。

配置 conf/activemq.xml 的 broke元素添加插件:

        <plugins><simpleAuthenticationPlugin><users><authenticationUser username="admin" password="password" groups="admins,publishers,consumers"/><authenticationUser username="publisher" password="password"  groups="publishers,consumers"/><authenticationUser username="consumer" password="password" groups="consumers"/><authenticationUser username="guest" password="password"  groups="guests"/></users></simpleAuthenticationPlugin></plugins>
Salin selepas log masuk

代码中的认证方式两种:

1、在创建Connection的时候认证

//用户认证Connection conn = connFactory.createConnection("admin","password");
Salin selepas log masuk

2、也可以在创建ConnectionFactory工厂的时候认证

ConnectionFactory connFactory = new ActiveMQConnectionFactory("admin","password",url);
Salin selepas log masuk

 

(二)、JAAS authentication plug-in:实现了JAAS API,提供了一个更强大的和可定制的权限方案。

配置方式:

1、在conf目录中创建 login.config 文件 用户 配置 PropertiesLoginModule:

activemq-domain {
    org.apache.activemq.jaas.PropertiesLoginModule required debug=trueorg.apache.activemq.jaas.properties.user="users.properties"org.apache.activemq.jaas.properties.group="groups.properties";
};
Salin selepas log masuk

2、在conf目录中创建users.properties 文件用户配置用户:

# 创建四个用户
admin=password  
publisher=password 
consumer=password  
guest=password
Salin selepas log masuk

3、在conf目录中创建groups.properties 文件用户配置用户组:

#创建四个组并分配用户
admins=admin
publishers=admin,publisher
consumers=admin,publisher,consumer
guests=guest
Salin selepas log masuk

4、将该配置插入到activemq.xml中:

<!-- JAAS authentication plug-in --><plugins><jaasAuthenticationPlugin configuration="activemq-domain" /></plugins>
Salin selepas log masuk

5、配置MQ的启动参数:

使用dos命令启动:

D:\tools\apache-activemq-5.6.0-bin\apache-activemq-5.6.0\bin\win64>activemq.bat -Djava.security.auth.login.config=D:/tools/apache-activemq-5.6.0-bin/apache-activemq-5.6.0/conf/login.config
Salin selepas log masuk

6、在代码中的认证方式与Simple authentication plug-in 相同。

二、授权

基于认证的基础上,可以根据实际用户角色来授予相应的权限,如有些用户有队列写的权限,有些则只能读等等。
两种授权方式
(一)、目的地级别授权

JMS目的地的三种操作级别:
  Read :读取目的地消息权限
  Write:发送消息到目的地权限
  Admin:管理目的地的权限

配置方式  conf/activemq.xml :

<plugins><jaasAuthenticationPlugin configuration="activemq-domain" /><authorizationPlugin><map><authorizationMap><authorizationEntries><authorizationEntry topic="topic.ch09" read="consumers" write="publishers" admin="publishers" /></authorizationEntries></authorizationMap></map></authorizationPlugin></plugins>
Salin selepas log masuk

(二)、消息级别授权

授权特定的消息。

开发步骤:
1、实现消息授权插件,需要实现MessageAuthorizationPolicy接口

public class AuthorizationPolicy implements MessageAuthorizationPolicy {private static final Log LOG = LogFactory.
        getLog(AuthorizationPolicy.class);public boolean isAllowedToConsume(ConnectionContext context,
        Message message) {
        LOG.info(context.getConnection().getRemoteAddress());
        String remoteAddress = context.getConnection().getRemoteAddress();if (remoteAddress.startsWith("/127.0.0.1")) {
            LOG.info("Permission to consume granted");return true;
        } else {
        LOG.info("Permission to consume denied");return false;
    }
    }
}
Salin selepas log masuk

2、把插件实现类打成JAR包,放入到activeMq 的 lib目录中

3、在activemq.xml中设置元素

<messageAuthorizationPolicy><bean class="org.apache.activemq.book.ch6.AuthorizationPolicy" xmlns="http://www.springframework.org/schema/beans" /></messageAuthorizationPolicy>
Salin selepas log masuk

三、自定义安全插件

插件逻辑需要实现BrokerFilter类,并且通过BrokerPlugin实现类来安装,用于拦截,Broker级别的操作:

  • 接入消费者和生产者

  • 提交事务

  • 添加和删除broker的连接

demo:基于IP地址,限制Broker连接。

package ch02.ptp;import java.util.List;import org.apache.activemq.broker.Broker;import org.apache.activemq.broker.BrokerFilter;import org.apache.activemq.broker.ConnectionContext;import org.apache.activemq.command.ConnectionInfo;public class IPAuthenticationBroker extends BrokerFilter {
    List<String> allowedIPAddresses;public IPAuthenticationBroker(Broker next, List<String>allowedIPAddresses) {super(next);this.allowedIPAddresses = allowedIPAddresses;
    }public void addConnection(ConnectionContext context, ConnectionInfo info) throws Exception {
        String remoteAddress = context.getConnection().getRemoteAddress();if (!allowedIPAddresses.contains(remoteAddress)) {throw new SecurityException("Connecting from IP address "
            + remoteAddress+ " is not allowed" );
        }super.addConnection(context, info);
    }
}
Salin selepas log masuk

安装插件:

package ch02.ptp;import java.util.List;import org.apache.activemq.broker.Broker;import org.apache.activemq.broker.BrokerPlugin;public class IPAuthenticationPlugin implements BrokerPlugin {
    List<String> allowedIPAddresses;public Broker installPlugin(Broker broker) throws Exception {return new IPAuthenticationBroker(broker, allowedIPAddresses);
    }public List<String> getAllowedIPAddresses() {return allowedIPAddresses;
    }public void setAllowedIPAddresses(List<String> allowedIPAddresses) {this.allowedIPAddresses = allowedIPAddresses;
    }
}
Salin selepas log masuk

ps:将这连个类打成jar包放到activemq的lib目录下

配置自定义插件:

<plugins><bean xmlns="http://www.springframework.org/schema/beans" id="ipAuthenticationPlugin"   class="org.apache.activemq.book.ch6.IPAuthenticationPlugin"><property name="allowedIPAddresses"><list>  <value>127.0.0.1</value></list></property></bean></plugins>
Salin selepas log masuk

 

Atas ialah kandungan terperinci 详解JMS 之 Active MQ的安全机制. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penjelasan terperinci tentang cara mematikan Pusat Keselamatan Windows 11 Penjelasan terperinci tentang cara mematikan Pusat Keselamatan Windows 11 Mar 27, 2024 pm 03:27 PM

Dalam sistem pengendalian Windows 11, Pusat Keselamatan ialah fungsi penting yang membantu pengguna memantau status keselamatan sistem, mempertahankan daripada perisian hasad dan melindungi privasi peribadi. Walau bagaimanapun, kadangkala pengguna mungkin perlu mematikan Pusat Keselamatan buat sementara waktu, seperti semasa memasang perisian tertentu atau melakukan penalaan sistem. Artikel ini akan memperkenalkan secara terperinci cara untuk mematikan Pusat Keselamatan Windows 11 untuk membantu anda mengendalikan sistem dengan betul dan selamat. 1. Bagaimana untuk mematikan Pusat Keselamatan Windows 11 Dalam Windows 11, mematikan Pusat Keselamatan tidak

Penjelasan terperinci tentang cara mematikan perlindungan masa nyata dalam Pusat Keselamatan Windows Penjelasan terperinci tentang cara mematikan perlindungan masa nyata dalam Pusat Keselamatan Windows Mar 27, 2024 pm 02:30 PM

Sebagai salah satu sistem pengendalian dengan bilangan pengguna terbesar di dunia, sistem pengendalian Windows sentiasa digemari oleh pengguna. Walau bagaimanapun, apabila menggunakan sistem Windows, pengguna mungkin menghadapi banyak risiko keselamatan, seperti serangan virus, perisian hasad dan ancaman lain. Untuk mengukuhkan keselamatan sistem, sistem Windows mempunyai banyak mekanisme perlindungan keselamatan terbina dalam, salah satunya ialah fungsi perlindungan masa nyata Pusat Keselamatan Windows. Hari ini, kami akan memperkenalkan secara terperinci cara mematikan perlindungan masa nyata dalam Pusat Keselamatan Windows. Mula-mula, mari

Petua untuk mematikan perlindungan masa nyata dalam Pusat Keselamatan Windows Petua untuk mematikan perlindungan masa nyata dalam Pusat Keselamatan Windows Mar 27, 2024 pm 10:09 PM

Dalam masyarakat digital hari ini, komputer telah menjadi bahagian yang amat diperlukan dalam kehidupan kita. Sebagai salah satu sistem pengendalian yang paling popular, Windows digunakan secara meluas di seluruh dunia. Walau bagaimanapun, apabila kaedah serangan rangkaian terus meningkat, melindungi keselamatan komputer peribadi telah menjadi sangat penting. Sistem pengendalian Windows menyediakan satu siri fungsi keselamatan, yang mana "Pusat Keselamatan Windows" adalah salah satu komponen pentingnya. Dalam sistem Windows, "Pusat Keselamatan Windows" boleh membantu kami

Kerangka mikro PHP: Perbincangan keselamatan Slim dan Phalcon Kerangka mikro PHP: Perbincangan keselamatan Slim dan Phalcon Jun 04, 2024 am 09:28 AM

Dalam perbandingan keselamatan antara Slim dan Phalcon dalam rangka kerja mikro PHP, Phalcon mempunyai ciri keselamatan terbina dalam seperti perlindungan CSRF dan XSS, pengesahan borang, dsb., manakala Slim tidak mempunyai ciri keselamatan luar biasa dan memerlukan pelaksanaan manual daripada langkah-langkah keselamatan. Untuk aplikasi kritikal keselamatan, Phalcon menawarkan perlindungan yang lebih komprehensif dan merupakan pilihan yang lebih baik.

Melaksanakan Algoritma Pembelajaran Mesin dalam C++: Pertimbangan Keselamatan dan Amalan Terbaik Melaksanakan Algoritma Pembelajaran Mesin dalam C++: Pertimbangan Keselamatan dan Amalan Terbaik Jun 01, 2024 am 09:26 AM

Apabila melaksanakan algoritma pembelajaran mesin dalam C++, pertimbangan keselamatan adalah penting, termasuk privasi data, pengubahan model dan pengesahan input. Amalan terbaik termasuk menggunakan perpustakaan selamat, meminimumkan kebenaran, menggunakan kotak pasir dan pemantauan berterusan. Kes praktikal menunjukkan penggunaan perpustakaan Botan untuk menyulitkan dan menyahsulit model CNN untuk memastikan latihan dan ramalan yang selamat.

Konfigurasi keselamatan dan pengerasan rangka kerja Struts 2 Konfigurasi keselamatan dan pengerasan rangka kerja Struts 2 May 31, 2024 pm 10:53 PM

Untuk melindungi aplikasi Struts2 anda, anda boleh menggunakan konfigurasi keselamatan berikut: Lumpuhkan ciri yang tidak digunakan Dayakan semakan jenis kandungan Sahkan input Dayakan token keselamatan Cegah serangan CSRF Gunakan RBAC untuk menyekat akses berasaskan peranan

Bagaimanakah reka bentuk seni bina keselamatan rangka kerja Java harus seimbang dengan keperluan perniagaan? Bagaimanakah reka bentuk seni bina keselamatan rangka kerja Java harus seimbang dengan keperluan perniagaan? Jun 04, 2024 pm 02:53 PM

Reka bentuk rangka kerja Java membolehkan keselamatan dengan mengimbangi keperluan keselamatan dengan keperluan perniagaan: mengenal pasti keperluan perniagaan utama dan mengutamakan keperluan keselamatan yang berkaitan. Membangunkan strategi keselamatan yang fleksibel, bertindak balas terhadap ancaman secara berlapis, dan membuat pelarasan tetap. Pertimbangkan fleksibiliti seni bina, menyokong evolusi perniagaan dan fungsi keselamatan abstrak. Utamakan kecekapan dan ketersediaan, mengoptimumkan langkah keselamatan dan meningkatkan keterlihatan.

See all articles