<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學(xué);靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks

    2.4 Security
    ??? ActiveMQ支持可插拔的安全機(jī)制,用以在不同的provider之間切換。
    2.4.1 Simple Authentication Plugin
    ??? Simple Authentication Plugin適用于簡單的認(rèn)證需求,或者用于建立測試環(huán)境。它允許在XML配置文件中指定用戶、用戶組和密碼等信息。以下是ActiveMQ配置的一個例子:

    Xml代碼
    1. < plugins > ??
    2. ??...??
    3. ??<simpleAuthenticationPlugin>??
    4. ????<users>??
    5. ??????<authenticationUser?username="system"?password="manager"?groups="users,admins"/>??
    6. ??????<authenticationUser?username="user"?password="password"?groups="users"/>??
    7. ??????<authenticationUser?username="guest"?password="password"?groups="guests"/>??
    8. ????</users>??
    9. ??</simpleAuthenticationPlugin>??
    10. </ plugins > ??

    ?

    2.4.2 JAAS Authentication Plugin
    ??? JAAS Authentication Plugin依賴標(biāo)準(zhǔn)的JAAS機(jī)制來實(shí)現(xiàn)認(rèn)證。通常情況下,你需要通過設(shè)置java.security.auth.login.config系統(tǒng)屬性來 配置login modules的配置文件。如果沒有指定這個系統(tǒng)屬性,那么JAAS Authentication Plugin會缺省使用login.config作為文件名。以下是一個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";
    };
    ??? 這個login.config文件中設(shè)置了兩個屬性:org.apache.activemq.jaas.properties.user和 org.apache.activemq.jaas.properties.group分別用來指向user.properties和 group.properties文件。需要注意的是,PropertiesLoginModule使用本地文件的查找方式,而且查找時(shí)采用的base directory是login.config文件所在的目錄。因此這個login.config說明user.properties和 group.properties文件存放在跟login.config文件相同的目錄里。
    ??? 以下是ActiveMQ配置的一個例子:

    Xml代碼
    1. < plugins > ??
    2. ??...??
    3. ??<jaasAuthenticationPlugin?configuration="activemq-domain"?/>??
    4. </ plugins > ??

    ??? 基于以上的配置,在JAAS的LoginContext中會使用activemq-domain中配置的PropertiesLoginModule來進(jìn)行登陸。
    ??? ActiveMQ JAAS還支持LDAPLoginModule、CertificateLoginModule、TextFileCertificateLoginModule等login module。

    ?

    2.4.3 Custom Authentication Implementation
    ??? 可以通過編碼的方式為ActiveMQ增加認(rèn)證功能。例如編寫一個類繼承自XBeanBrokerService。

    Java代碼
    1. package ?com.yourpackage;??
    2. ??
    3. import ?java.net.URI;??
    4. import ?java.util.HashMap;??
    5. import ?java.util.Map;??
    6. ??
    7. import ?org.apache.activemq.broker.Broker;??
    8. import ?org.apache.activemq.broker.BrokerFactory;??
    9. import ?org.apache.activemq.broker.BrokerService;??
    10. import ?org.apache.activemq.security.SimpleAuthenticationBroker;??
    11. import ?org.apache.activemq.xbean.XBeanBrokerService;??
    12. ??
    13. public ? class ?SimpleAuthBroker? extends ?XBeanBrokerService?{??
    14. ????//??
    15. ????private?String?user;??
    16. ????private?String?password;??
    17. ??????
    18. ????@SuppressWarnings("unchecked")??
    19. ????protected?Broker?addInterceptors(Broker?broker)?throws?Exception?{??
    20. ????????broker?=?super.addInterceptors(broker);??
    21. ????????Map?passwords?=?new?HashMap();??
    22. ????????passwords.put(getUser(),?getPassword());??
    23. ????????broker?=?new?SimpleAuthenticationBroker(broker,?passwords,?new?HashMap());??
    24. ????????return?broker;??
    25. ????}??
    26. ??????
    27. ????public?String?getUser()?{??
    28. ????????return?user;??
    29. ????}??
    30. ??
    31. ????public?void?setUser(String?user)?{??
    32. ????????this.user?=?user;??
    33. ????}??
    34. ??
    35. ????public?String?getPassword()?{??
    36. ????????return?password;??
    37. ????}??
    38. ??
    39. ????public?void?setPassword(String?password)?{??
    40. ????????this.password?=?password;??
    41. ????}??
    42. }??
    ??? 以下是ActiveMQ配置文件的一個例子:
    Xml代碼
    1. <beans>??
    2. ??…??
    3. ??<auth:SimpleAuthBroker??
    4. ????xmlns:auth="java://com.yourpackage"??
    5. ????xmlns="http://activemq.org/config/1.0"?brokerName="SimpleAuthBroker1"?user="user"?password="password"?useJmx="true">??
    6. ????
    7. ????<transportConnectors>??
    8. ??????<transportConnector?uri="tcp://localhost:61616"/>??
    9. ????</transportConnectors>??
    10. ??</auth:SimpleAuthBroker>??
    11. ??…??
    12. </beans>??

    ?? 在這個配置文件中增加了一個namespace auth,用于指向之前編寫的哪個類。同時(shí)為SimpleAuthBroker注入了兩個屬性值user和password,因此在被 SimpleAuthBroker改寫的addInterceptors方法里,可以使用這兩個屬性進(jìn)行認(rèn)證了。ActiveMQ提供的 SimpleAuthenticationBroker類繼承自BrokerFilter(可以簡單的看成是Broker的Adaptor),它的構(gòu)造函 數(shù)中的兩個Map分別是userPasswords和userGroups。 SimpleAuthenticationBroker在 addConnection方法中使用userPasswords進(jìn)行認(rèn)證,同時(shí)會把userGroups的信息保存到 ConnectionContext中 。

    ?

    2.4.4 Authorization Plugin
    ??? 可以通過Authorization Plugin為認(rèn)證后的用戶授權(quán),以下ActiveMQ配置文件的一個例子:

    Xml代碼
    1. <plugins>??
    2. ??<jaasAuthenticationPlugin?configuration="activemq-domain"/>??
    3. ????
    4. ??<authorizationPlugin>??
    5. ????<map>??
    6. ??????<authorizationMap>??
    7. ????????<authorizationEntries>??
    8. ??????????<authorizationEntry?queue=">"?read="admins"?write="admins"?admin="admins"?/>??
    9. ??????????<authorizationEntry?queue="USERS.>"?read="users"?write="users"?admin="users"?/>??
    10. ??????????<authorizationEntry?queue="GUEST.>"?read="guests"?write="guests,users"?admin="guests,users"?/>??
    11. ????????????
    12. ??????????<authorizationEntry?topic=">"?read="admins"?write="admins"?admin="admins"?/>??
    13. ??????????<authorizationEntry?topic="USERS.>"?read="users"?write="users"?admin="users"?/>??
    14. ??????????<authorizationEntry?topic="GUEST.>"?read="guests"?write="guests,users"?admin="guests,users"?/>??
    15. ??
    16. ??????????<authorizationEntry?topic="ActiveMQ.Advisory.>"?read="guests,users"?write="guests,users"?admin="guests,users"/>??
    17. ????????</authorizationEntries>??
    18. ??????</authorizationMap>??
    19. ????</map>??
    20. ??</authorizationPlugin>??
    21. </plugins>
    posted on 2010-09-01 22:27 禮物 閱讀(705) 評論(0)  編輯  收藏 所屬分類: ActiveMQ

    只有注冊用戶登錄后才能發(fā)表評論。

    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费在线观看视频a| a级日本高清免费看| 91手机看片国产永久免费| 亚洲高清国产拍精品26U| free哆拍拍免费永久视频| 四虎1515hm免费国产| 亚洲Aⅴ在线无码播放毛片一线天| 久久久久久国产a免费观看黄色大片 | 亚洲韩国—中文字幕| 男的把j放进女人下面视频免费| 精品久久香蕉国产线看观看亚洲 | 国产精品免费久久久久久久久| 亚洲A丁香五香天堂网| 成人免费网站久久久| 国产亚洲精品不卡在线| 最近的2019免费中文字幕| 亚洲国产一成人久久精品| 久久青草精品38国产免费| 亚洲男女一区二区三区| 黄色片在线免费观看| 亚洲色精品三区二区一区| 国产乱色精品成人免费视频| 一级A毛片免费观看久久精品 | 亚洲乱码卡三乱码新区| 大地资源二在线观看免费高清| 亚洲国产高清国产拍精品| 亚洲国产精品综合久久网络| 丝瓜app免费下载网址进入ios| 亚洲天堂久久精品| 67194成是人免费无码| 精品在线视频免费| 久久噜噜噜久久亚洲va久| 成人免费福利视频| 深夜a级毛片免费视频| 免费一本色道久久一区| 国产精品亚洲va在线观看| 亚洲精品高清无码视频| 国产免费看JIZZ视频| 九九视频高清视频免费观看 | 四虎永久在线精品免费观看视频| 亚洲av永久无码|