Я использую rampart для обеспечения связи с клиентом webservice.Невозможно ли иметь безопасность на уровне транспортного уровня и уровень безопасности сообщений в валу? Зачем?
В соответствии со спецификацией я определил утверждение асимметричной привязки для обеспечения безопасности уровня сообщения, но также хочу иметь связь с webservice через SSL, поэтому я также определил соответствующее утверждение привязки к транспортной привязке.
Эффект заключается в том, что мой клиент может подключиться к веб-сервису через SSL, но в сообщении, которое отправляется, нет подписей - кажется, что несимметричные утверждения привязки были проигнорированы.
Действительно ли это так? Если это так - это ошибка в валу, или она каким-то образом запрещена спецификацией WS Security Policy (я не нашел такой информации)?
Глядя на источник класса MessageBuilder Rampart, я нашел это:
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);
}
Это снова заставляет меня думать, что можно использовать только один из безопасности связывания и если их больше, один выбирается с приоритетом в соответствии с вышеуказанным кодом.