我正在jBoss環境中工作,並實現了JMS以支持兩個模塊之間的異步通信。但爲此,我需要通過「add-user.sh」腳本添加用戶。然後將用戶信息保存在application-users.properties和application-roles.properties中。然後,我需要硬編碼在MessagePublisher類此用戶名和密碼,誰將會通過下面的代碼塊驗證用戶 -我們可以在沒有用戶名和密碼的情況下設置JMS通信嗎?
final static String INITIAL_CONTEXT_FACTORY = "org.jboss.naming.remote.client.InitialContextFactory";
Context context=null;
final Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
env.put(Context.PROVIDER_URL, System.getProperty(Context.PROVIDER_URL, PROVIDER_URL));
env.put(Context.SECURITY_PRINCIPAL, System.getProperty("username", "abcd"));
env.put(Context.SECURITY_CREDENTIALS, System.getProperty("password", "xyz"));
context = new InitialContext(env);
但我只是想繞過用戶名和密碼的這一步。我知道在ActiveMQ中可以設置<simpleAuthenticationPlugin anonymousAccessAllowed="true">
類似的,我們可以在JMS中做同樣的事情嗎?
我發現,在standalone.xml有一個條目 -
<security-settings>
<security-setting match="#">
<permission type="send" roles="guest"/>
<permission type="consume" roles="guest"/>
<permission type="createNonDurableQueue" roles="guest"/>
<permission type="deleteNonDurableQueue" roles="guest"/>
</security-setting>
</security-settings>
我相信我們需要修改本節,但沒有發現任何引用。
我們如何允許匿名用戶名將消息發送到JMS隊列或主題?
在此先感謝...