我使用XFire作为Spring Remoting的Web服务提供者。我使用AbstractHandler对SOAP请求进行身份验证。这个想法是通过始发服务器的域和API密钥(a-la Google Maps)来识别请求。唯一的问题是,我似乎找不到从invoke()方法中获取ServletRequest对象的方法,因为它只接受MessageContext对象。
我能想到的唯一想法是使用过滤器并将请求对象存储在ThreadLocal变量中,但我真的希望避免这种解决方案。
有什么想法吗?
干杯
夏伊
发布于 2009-01-06 19:12:34
我还没有对此进行测试,但是我手边有XFire的源代码,所以我深入研究了这些类,看看这是否很容易。在对invoke的调用中,您应该能够使用以下代码获取ServletRequest:
ServletRequest request = (ServletRequest) context.getProperty(org.codehaus.xfire.transport.http.XFireServletController.HTTP_SERVLET_REQUEST);https://stackoverflow.com/questions/415896
复制相似问题