您好,登錄后才能下訂單哦!
小編給大家分享一下Spring Integration中如何獲取TLS客戶端證書,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Spring Integration 是一個非常強大且可擴展的繼承框架。但有時,如何獲取你所需要的一些信息并非易事。就我而言 - 可以用于在 TLS(基于 TLS 的系統日志)連接中進行相互身份驗證的證書。你有一個接收消息的 Java 方法,理想情況下,你希望獲得客戶端使用的證書鏈來對其進行身份驗證(例如,你可能需要提取 CN)。
幸運的是,Spring Integration 是靈活的。它可以做到,但它有點令人費解。我將使用 XML 表示法,但同樣可以通過 Java 配置來實現。
<bean id="nioConnectionSupport" class="com.yourcompany.util.net.TLSMutualNioConnectionSupport">
<constructor-arg ref="sslContextSupport" />
<constructor-arg value="false" />
</bean>
<bean id="interceptorFactoryChain" class="org.springframework.integration.ip.tcp.connection.TcpConnectionInterceptorFactoryChain">
<property name="interceptors">
<bean class="com.yourcompany.util.net.TLSSyslogInterceptorFactory" />
</property>
</bean>
<int-ip:tcp-connection-factory id="tlsConnectionFactory" type="server" port="${tcp.tls.port}"
using-nio="true" nio-connection-support="nioConnectionSupport"
single-use="false" interceptor-factory-chain="interceptorFactoryChain" />
sslContextSupport
通常是org.springframework.integration.ip.tcp.connection.DefaultTcpSSLContextSupport
或自定義實現(例如,如果你想使用“blind”信任存儲)
那你就需要這兩個類。可以在各自的注冊表中查看它們:TLSSyslogInterceptorFactory
和TLSMUTAUALNIOCONNECTIONSUPPORT
。
這些類是用來做什么呢?TLSMutualNioConnectionSupport
類設置的SSL引擎“wantClientAuth
”選項。還有另一種選擇——“needClientAuth
”,它用于客戶端身份驗證,而不僅僅是支持它。根據用例,你可以使用一種或另一種。
然后,您可以通過以下方式在處理程序方法中獲取證書:
Certificate[] certificates = (Certificate[]) message.getHeaders().get(TLSSyslogInterceptorFactory.TLS_CLIENT_CERTIFICATES);
以上是“Spring Integration中如何獲取TLS客戶端證書”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。