【发布时间】:2015-04-17 14:17:41
【问题描述】:
我正在使用 spring-ws,我需要对我的 web 服务调用执行简单的用户名和密码验证。为此,我需要获取用户名和密码的默认肥皂头属性。我不知道如何用 spring-ws 做到这一点,我花了很多时间试图弄清楚。
我正在使用 SoapUI 并通过在“Aut”选项卡中设置来发送用户名和密码。
我的拦截器拦截了我的调用,但我已经调试了 messageContext,但我不知道这些字段在哪里。
这是我的代码,它不会在while中进入代码,所以迭代器在hasNext中返回false。
@Override
public boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception {
logger.info("Intercepting call");
SoapMessage soapMessage = (SoapMessage) messageContext.getRequest();
SoapHeader soapHeader = soapMessage.getSoapHeader();
Iterator<SoapHeaderElement> it = soapHeader.examineAllHeaderElements();
while(it.hasNext()) {
SoapHeaderElement element = it.next();
QName qname = element.getName();
logger.info("QName: " + qname.getLocalPart());
logger.info("Value? " + soapHeader.getAttributeValue(qname));
}
return true;
}
如果您愿意向我指出有关该主题的任何文档,或者更好的是一些示例,那将是一个很大的帮助。
非常感谢。
【问题讨论】:
标签: java spring web-services soap spring-ws