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

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

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

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

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

    2.4 Security
    ??? ActiveMQ支持可插拔的安全機制,用以在不同的provider之間切換。
    2.4.1 Simple Authentication Plugin
    ??? Simple Authentication Plugin適用于簡單的認證需求,或者用于建立測試環境。它允許在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依賴標準的JAAS機制來實現認證。通常情況下,你需要通過設置java.security.auth.login.config系統屬性來 配置login modules的配置文件。如果沒有指定這個系統屬性,那么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文件中設置了兩個屬性:org.apache.activemq.jaas.properties.user和 org.apache.activemq.jaas.properties.group分別用來指向user.properties和 group.properties文件。需要注意的是,PropertiesLoginModule使用本地文件的查找方式,而且查找時采用的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來進行登陸。
    ??? ActiveMQ JAAS還支持LDAPLoginModule、CertificateLoginModule、TextFileCertificateLoginModule等login module。

    ?

    2.4.3 Custom Authentication Implementation
    ??? 可以通過編碼的方式為ActiveMQ增加認證功能。例如編寫一個類繼承自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,用于指向之前編寫的哪個類。同時為SimpleAuthBroker注入了兩個屬性值user和password,因此在被 SimpleAuthBroker改寫的addInterceptors方法里,可以使用這兩個屬性進行認證了。ActiveMQ提供的 SimpleAuthenticationBroker類繼承自BrokerFilter(可以簡單的看成是Broker的Adaptor),它的構造函 數中的兩個Map分別是userPasswords和userGroups。 SimpleAuthenticationBroker在 addConnection方法中使用userPasswords進行認證,同時會把userGroups的信息保存到 ConnectionContext中 。

    ?

    2.4.4 Authorization Plugin
    ??? 可以通過Authorization Plugin為認證后的用戶授權,以下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 禮物 閱讀(698) 評論(0)  編輯  收藏 所屬分類: ActiveMQ
    主站蜘蛛池模板: 亚洲av无码天堂一区二区三区| 青青青青青青久久久免费观看| 久久精品国产精品亚洲| 成在线人直播免费视频| 亚洲国产精品第一区二区三区| 日韩毛片一区视频免费| 久久亚洲中文字幕精品一区 | 亚洲国产综合精品| 亚洲AV成人精品网站在线播放| 99热在线日韩精品免费| 亚洲爱情岛论坛永久| 57pao一国产成永久免费| 亚洲av永久无码精品天堂久久| 性感美女视频免费网站午夜| 亚洲av中文无码乱人伦在线观看| 国产中文字幕免费观看| 一级一级一级毛片免费毛片| 成人毛片免费观看视频| 国产精品亚洲AV三区| 亚洲午夜久久久久久久久久 | 亚洲高清国产拍精品26U| 午夜精品一区二区三区免费视频| 亚洲黄色在线观看网站| 免费观看一级毛片| EEUSS影院WWW在线观看免费 | 亚洲偷自拍另类图片二区| 国产午夜鲁丝片AV无码免费| 国产免费播放一区二区| 久久久婷婷五月亚洲97号色 | 国产免费不卡v片在线观看| 国产av无码专区亚洲av毛片搜| 青青青国产在线观看免费网站| 亚洲国产精品特色大片观看完整版| 久久不见久久见免费视频7| 亚洲大尺度无码无码专线一区| 在线亚洲精品自拍| 免费99精品国产自在现线| 特级aa**毛片免费观看| 亚洲精品电影天堂网| 免费一看一级毛片| 免费在线观看视频网站|