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