日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache ActiveMQ中的消息级别授权

發(fā)布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache ActiveMQ中的消息级别授权 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

盡管上一篇文章介紹了“代理級身份驗證”,但該博文是關(guān)于消息級更嚴(yán)格的授權(quán)的。

我在現(xiàn)實生活中的項目中并沒有這么精細(xì)的授權(quán),但是我想自己做,并為讀者提供一個教程,以擴(kuò)展他們對ActiveMQ中安全性的了解并簡化他們的工作。

有時,限制對代理的訪問以及在某些消息之上進(jìn)行訪問可能很有用。 ActiveMQ沒有開箱即用的插件。 您必須自己或多或少地實施它。

使用Maven創(chuàng)建Java項目

您必須首先基于Maven創(chuàng)建一個新的Java項目。

在下一步中,我建議將activemq-all maven依賴項添加到項目中(與activemq安裝版本相同),以確保使用正確的導(dǎo)入和類。

此處提供了所有activemq版本和相應(yīng)的maven依賴片段的列表。

之后,是時候向以前創(chuàng)建的項目中添加新的Java類了。 我的消息級別策略類如下所示:

package com.schulz.bennet.activemq;import org.apache.activemq.broker.ConnectionContext; import org.apache.activemq.command.Message; import org.apache.activemq.security.MessageAuthorizationPolicy;public class MyMessageAuthorizationPolicy implements MessageAuthorizationPolicy {public boolean isAllowedToConsume(ConnectionContext ctx, Message m) {return ctx.getUserName().equals("admin");} }

注意:您的類必須實現(xiàn)MessageAuthorizationPolicy接口,并且還必須向類中添加公共的boolean isAllowedToConsume(…)方法。 在這種方法中,您可以實施邏輯來決定允許誰使用您的消息。 在我的示例中,僅允許管理員使用。

將策略添加到ActiveMQ

打開一個控制臺,CD進(jìn)入您的項目文件夾,并通過調(diào)用mvn clean install命令來構(gòu)建您的maven應(yīng)用程序。

現(xiàn)在是時候?qū)ar文件從目標(biāo)項目文件夾復(fù)制到ActiveMQ安裝的lib文件夾,以使其可用于ActiveMQ。 在最后的配置步驟中,您必須將以下代碼段添加到activemq.xml的代理標(biāo)記中:

<messageAuthorizationPolicy><bean class="com.schulz.bennet.MyMessageMessageAuthorizationPolicy"xmlns="http://www.springframework.org/schema/beans" /></messageAuthorizationPolicy>

提示:不要忘記將其更改為完全合格的類名,而不是我的;-)

通過使用消息來測試策略

首先,您必須通過控制臺上的以下命令啟動代理:

./bin/activemq start

通過使用activemq腳本使用示例消息來檢查您的策略是否正常運行:

./bin/activemq consumer --user admin --password password

這應(yīng)該起作用,因為以前創(chuàng)建的策略類允許用戶admin使用消息。 除此之外,與用戶admin以外的其他用戶一起使用消息應(yīng)該是不可能的。 您可以使用其他用戶進(jìn)行測試:

./bin/activemq consumer --user consumer --password password

該使用者不應(yīng)使用任何單個消息。

如果您有任何疑問,想要我的源代碼,YouTube視頻或類似的東西,只需發(fā)表評論或通過Twitter與我聯(lián)系。 享受ActiveMQ的樂趣!

翻譯自: https://www.javacodegeeks.com/2016/07/message-level-authorization-apache-activemq.html

總結(jié)

以上是生活随笔為你收集整理的Apache ActiveMQ中的消息级别授权的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。