亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

IBM MQ 和 Spring Integration - 安全設置

IBM MQ 和 Spring Integration - 安全設置

當年話下 2023-08-16 17:46:53
我有一個 Spring Integration 流程,它使用入站網關從 IBM MQ 隊列獲取消息:<int-jms:inbound-gateway?id="InputGateway"?? ???request-destination="RequestQueue"?? ?????????request-channel="RequestChannel" ?????????reply-channel="ReplyChannel"????? ?????????/>但是我無法分配安全設置。特別是,我需要用戶名、密碼和 userAuthenticationMQCSP = false(出于超出本文范圍的原因,我不會詳細說明,但我的經紀人將拋出 MQRC = 2009 否則)。我已按照IBM 指南連接 jmsTemplate并且工作正常。這使用 IBM MQ 的官方Spring boot starter,它將創建一個連接工廠,并使用 application.properties 中的一些默認值自動配置它:ibm.mq.queueManager=myQMName ibm.mq.channel=myChannel ibm.mq.connName=myhostname(myPort) ibm.mq.user=username ibm.mq.password=******* ibm.mq.userAuthenticationMQCSP=false現在,回到 Spring Integration 案例。根據int-jms:inbound-gateway 規范,連接工廠將按名稱(屬性:連接工廠)注入到網關,默認設置為&ldquo;jmsConnectionFactory&rdquo;默認情況下,所有需要引用 ConnectionFactory 的 JMS 適配器都會自動查找名為 jmsConnectionFactory 的 bean。這就是為什么您在許多示例中看不到連接工廠屬性的原因。但是,如果您的 JMS ConnectionFactory 有不同的 bean 名稱,則需要提供該屬性。我沒有看到任何方法來為可以插入 int-jms:inbound-gateway 的連接工廠設置可預測的名稱?,F在,采用不同的方法,根據此示例,我使用適當的名稱創建了連接工廠:<bean?id="jmsConnectionFactory"?class="com.ibm.mq.jms.MQQueueConnectionFactory"> ?????<property?name="transportType"?value="1"/> ?????<property?name="queueManager"?value="myQMName"/> ?????<property?name="hostName"?value="myhostname"/> ?????<property?name="port"?value="myPort"?/> ?????<property?name="channel"?value="myChannel"/> </bean>但現在我需要在某個地方放置憑據和安全參數。看看上面的例子,看起來我需要插入類似的東西:<bean?id="secureJmsConnectionAdapter"?class="**yourpackages.SecureJMSConnectionAdapter**"> ????<property?name="targetConnectionFactory"?ref="${jms.mq.connection.factory}"?/> ????<property?name="userName"?value="${jms.username}"/> ????<property?name="pwdAlias"?value="${jms.alias}"/> </bean>但是我不清楚如何實現這個 SecureJMSConnectionAdapter。此外,如果我設置自己的連接工廠,由于MQAutoConfiguration 類上的此注釋,我將丟失所有 MQ boot starter automagic :@ConditionalOnMissingBean(value=javax.jms.ConnectionFactory.class)關于如何將這些部分組合在一起有什么想法嗎?編輯:為了避免對任何人造成任何可能的干擾,MQRC2009 與 ibm.mq.userAuthenticationMQCSP=false 無關。
查看完整描述

1 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

我的一些舊項目使用了這樣的 bean:

<bean?id="jmsQueueConnectionFactory"
??????class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
????<property?name="targetConnectionFactory"?ref="jmsConnectionFactory"/>
????<property?name="username"?value="${jms.username}"/>
????<property?name="password"?value="${jms.alias}"/>
</bean>

應該可以很好地作為您的包裝器com.ibm.mq.jms.MQQueueConnectionFactory,但您必須jmsQueueConnectionFactory在目標組件中使用它。

盡管看起來前面提到的IBM MQ JMS Spring并不能幫助我們正確公開jmsConnectionFactorybean。在這種情況下,您可以依賴 Spring Integration 的默認值,或者jmsConnectionFactory顯式地將其用于connection-factory.

查看完整回答
反對 回復 2023-08-16
  • 1 回答
  • 0 關注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號