Я использую XFire в качестве поставщика веб-служб для Spring Remoting. Я использую AbstractHandler для аутентификации запроса SOAP. Идея состоит в том, чтобы идентифицировать запрос по домену исходного сервера и ключу API (а-ля Google Maps). Единственная проблема заключается в том, что я не могу найти способ получить объект ServletRequest из метода invoke (), который принимает только объект MessageContext.
Единственная идея, о которой я могу думать, - это использовать фильтр и хранить объект запроса внутри переменной ThreadLocal, но я бы предпочел избежать этого решения.
Любые идеи?
Ваше здоровье
Шай




Я не тестировал это, но у меня есть исходный код для XFire, поэтому я покопался в классах, чтобы увидеть, будет ли это легко. При вызове invoke вы сможете получить ServletRequest со следующим кодом:
ServletRequest request = (ServletRequest) context.getProperty(org.codehaus.xfire.transport.http.XFireServletController.HTTP_SERVLET_REQUEST);
Спасибо! Надо было самому подумать о загрузке исходного кода :)
Мне нужно узнать, какое имя хоста у сервера, отправившего запрос.