使用 WebSphere、Spring-WS 和 WSS4J 的 WebService 证书验证
Posted
技术标签:
【中文标题】使用 WebSphere、Spring-WS 和 WSS4J 的 WebService 证书验证【英文标题】:WebService Certificate Validation using WebSphere, Spring-WS and WSS4J 【发布时间】:2011-11-21 02:04:45 【问题描述】:我正在开发一个使用 Spring-WS 2.0 提供 SOAP WebServices 的 webapp。 WebService 请求需要使用在服务器上经过验证的证书进行签名。为了做到这一点 WSS4J 并使用了信任库 - 这里是 spring-config:
<bean class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="validationActions" value="Signature" />
<property name="validationSignatureCrypto">
<bean class="org.springframework.ws.soap.security.wss4j.support.CryptoFactoryBean">
<property name="keyStorePassword" value="pass"/>
<property name="keyStoreLocation" value="location"/>
</bean>
</property>
</bean>
应用程序应部署到 WebSphere 7,主要要求是,信任库不应随应用程序一起提供,而应由 Application Server 提供。 有人知道我可以如何实现,WebSphere 要么提供信任库,要么如何配置 WebSphere 以执行安全授权?主要的挑战似乎是,使用 Spring-WS 而不是使用 WebSphere 的 WebServices 工具......
【问题讨论】:
【参考方案1】:我不使用 Spring-WS,所以不知道它的细节。
WAS 有一个信任库,用于存储受信任的签署者证书列表。
如果您愿意,密钥库和信任库可以保持@多个级别(例如节点、单元等)。
有关详细信息,您可以查看公开的 PPT
http://www.websphereusergroup.org.uk/wug/files/presentations/25/25_3_WAS61SecUpdate.pdf.
我不知道您使用的 WAS 版本是 WAS 6.1,而 WAS 7.x 是目前使用最广泛的版本!
HTH 芒露
【讨论】:
好的 - 一旦我将证书上传到密钥/信任库,我如何在我的应用程序中获取它? 嗨 Odalf,我不确定我是否理解您的评论。为什么您的应用程序需要您的应用程序中的证书。您将身份验证委托给 WAS 运行时(这是我从您的问题中理解的)。如果您可以改写您的查询,我可以尝试提供帮助。以上是关于使用 WebSphere、Spring-WS 和 WSS4J 的 WebService 证书验证的主要内容,如果未能解决你的问题,请参考以下文章
Spring-WS为SOAP版本1.2设置SOAPAction头
Spring-WS:具有 WSDL 多节点分类的 SimpleWsdl11Definition