我目前正在使用Spring Integration從隊列中獲取消息並使用服務激活器將消息發送給服務。我的問題是,我所調用的服務需要爲當前線程安裝一個安全上下文。這可以通過調用另一個bean的無參數方法handleAuthentication()來設置。我想知道在調用服務激活器服務之前,每當收到新消息時調用此方法的最佳方法是什麼?我原本以爲我會連接兩個服務激活器,第一個調用handleAuthentication(),但這看起來不正確,因爲handleAuthentication()不需要來自實際消息的任何信息。如何使用Spring集成收到消息時調用安全設置
1
A
回答
1
是的,你對安全處理的假設是正確的。這實際上只是一個副作用方面,不應該與業務邏輯聯繫在一起。
因此,我們應該使用一些東西,使我們能夠遵循程序中的相同行爲。它在編程中也被稱爲Aspect
。
爲此目的,Spring集成建議使用類似MessageChannelInterceptor
的掛鉤,根據您的解釋,您可以在preReceive()
回調中正確實施handleAuthentication()
。
另一個技巧可以通過<request-handler-advice-chain>
和MethodInterceptor
實現來實現,該實現應該在目標服務調用之前將SecurityContext
填充到當前線程中。
相關問題
- 1. 如何使用Spring集成調用安全的SOAP服務
- 2. 如何在Spring集成中記錄收到的SOAP消息
- 3. Spring批處理/集成 - 接收消息
- 4. 設置集成安全,ii6
- 5. Spring集成卡夫卡消息驅動通道適配器收到消息
- 6. 使用Spring集成將消息推送到Websocket Outbount
- 7. 如何在使用spring安全註解時調用不安全的代理?
- 8. 如何設置spring-rabbitmq收聽消息的速率
- 9. 設置WCF傳輸和消息安全
- 10. 使用Windows集成安全
- 11. 使用Spring集成消費Salesforce出站消息
- 12. JMS消息未使用spring JMSTemplate接收?
- 13. 當我收到異常時如何設置消息
- 14. 如何在使用Spring與CAS集成時訪問安全的後端服務?
- 15. 如何使用Spring集成
- 16. 如何在使用HTTPS時避免IE7中的安全消息?
- 17. 如何使用配置類設置Spring MVC和Spring EJB集成beanRefContext.xml?
- 18. 使用JSF和Spring安全性註銷後顯示消息
- 19. 如何使用ng消息顯示覆選框集和收音機設置的錯誤消息?
- 20. 集成彈簧安全與Ajax調用
- 21. 如何使用SQL Server和ASP.NET爲集成安全性設置帳戶?
- 22. Sitecore:在配置LightLDAP時使用集成安全性.SitecoreADRoleProvider
- 23. 將安全性集成到Spring MVC應用程序(applicationContext Issue)
- 24. 類型安全生成器:如何設置編譯器錯誤消息
- 25. 如何使用Spring AMQP接收來自RabbitMQ的correlationid消息
- 26. 我如何用SSPI集成安全
- 27. 空指針異常Spring集成消息收發
- 28. Android設備在delay_while_idle設置爲true時未收到消息
- 29. 在Spring集成中使用攔截器發送日誌消息
- 30. Spring集成消息處理程序鏈的使用情況?
我遇到了preReceive和postReceive如何工作的問題。每次查詢頻道時都會調用這些方法,無論是否存在消息。有沒有一種方法,只有在實際存在信息時纔會調用這些方法?否則,它將不斷地調用handleAuthentication()。 – user964210
哦,對!如何在'postReceive()'回調中做同樣的事情? –
'postReceive()'實際上在輪詢時也總是被調用。我通過查看org.springframework.integration.channel.AbstractPollableChannel的'receive(long timeout)'方法驗證了這一點。當沒有消息時,回調只收到回消息。 – user964210