温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring Integration中如何获取TLS客户端证书

发布时间:2022-02-28 11:22:48 来源:亿速云 阅读:164 作者:小新 栏目:开发技术

小编给大家分享一下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”信任存储)

那你就需要这两个类。可以在各自的注册表中查看它们:TLSSyslogInterceptorFactoryTLSMUTAUALNIOCONNECTIONSUPPORT

这些类是用来做什么呢?TLSMutualNioConnectionSupport类设置的SSL引擎“wantClientAuth”选项。还有另一种选择——“needClientAuth”,它用于客户端身份验证,而不仅仅是支持它。根据用例,你可以使用一种或另一种。

然后,您可以通过以下方式在处理程序方法中获取证书:

Certificate[] certificates = (Certificate[]) message.getHeaders().get(TLSSyslogInterceptorFactory.TLS_CLIENT_CERTIFICATES);

以上是“Spring Integration中如何获取TLS客户端证书”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI