【发布时间】:2013-08-23 08:41:33
【问题描述】:
我正在使用壁垒来保护来自 Web 服务客户端的通信。
按照规范,我定义了一个非对称绑定断言来提供消息级别的安全性,但我也希望通过 SSL 与 web 服务进行通信,因此我还定义了一个适当的传输绑定断言。
效果是我的客户端能够通过 SSL 连接到 web 服务,但在发送的消息中,没有签名 - 好像忽略了非对称绑定断言。
真的是这样吗?如果是这样 - 这是壁垒中的错误,还是 WS 安全策略规范以某种方式禁止它(我还没有找到任何此类信息)?
查看壁垒的 MessageBuilder 类源,我发现了这个:
if(rpd.isTransportBinding()) {
log.debug("Building transport binding");
TransportBindingBuilder building = new TransportBindingBuilder();
building.build(rmd);
} else if(rpd.isSymmetricBinding()) {
log.debug("Building SymmetricBinding");
SymmetricBindingBuilder builder = new SymmetricBindingBuilder();
builder.build(rmd);
} else {
AsymmetricBindingBuilder builder = new AsymmetricBindingBuilder();
builder.build(rmd);
}
这又让我想到,一个人只能使用一个安全绑定,如果有更多,则根据上面的代码优先选择一个。
【问题讨论】:
标签: java web-services ssl ws-security rampart