您如何獲得發送肥皂請求的客戶機的源IP,用戶名,密碼等?是否有任何這些細節可以用於記錄目的?如何獲取請求客戶機的SOAP的源IP?
我正在使用Java來處理傳入的SOAP請求。該服務只需添加2個號碼並正在工作,但我只需要獲取一些客戶詳細信息。
感謝,Lavanya
您如何獲得發送肥皂請求的客戶機的源IP,用戶名,密碼等?是否有任何這些細節可以用於記錄目的?如何獲取請求客戶機的SOAP的源IP?
我正在使用Java來處理傳入的SOAP請求。該服務只需添加2個號碼並正在工作,但我只需要獲取一些客戶詳細信息。
感謝,Lavanya
我不是蘇特我完全理解你獲得的用戶名和客戶機的密碼的想法。 通常Soap看Soap Header時,它們應該攜帶認證信息(可能是用戶名,密碼或某種安全toke)。 對於IP,你的Soap是通過Http來傳遞的,因此當你收到你的請求時,你可以試着看看你的Http頭文件,看看它給你的信息。雖然我從來沒有試圖從它獲取客戶端的IP,但它可能在HTTP標頭中。
您正在使用什麼肥皂堆棧。如果你將它作爲一個使用軸的戰爭文件進行部署,這很容易做到。你需要掌握httprequestobject並調用HTTPServletRequest.getRemoteAddr()方法。
該服務以.jar文件運行。 然後我使用我的WSDL文件來創建和啓動請求。 – user450937 2010-04-15 19:00:24
如果您在使用JAX-WS,注入WebServiceContext像這樣:
import javax.annotation.Resource
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
@WebService()
public class Test
{
@Resource WebServiceContext context;
@WebMethod(operationName = "getInfo")
public String getInfo()
{
HttpServletRequest request = (HttpServletRequest)context.getMessageContext().get(MessageContext.SERVLET_REQUEST);
return "IP: "+request.getRemoteAddr()+", Port: "+request.getRemotePort()+", Host: "+request.getRemoteHost();
}
}
將返回類似:在API
IP: 127.0.0.1, Port: 2636, Host: localhost
查找的方法,其餘。基本上,一旦你有你的HttpServletRequest
對象,其餘的很容易。
這個答案應該被接受。我用這種方法,它完美的作品! – membersound 2012-08-08 16:29:05
我正在使用以下方法,但我沒有發現它正常工作。你有沒有使用上述類的例子。這將是非常有幫助的。 – Saikat1529 2017-11-14 09:37:14
@ Saikat1529鑑於這個答案是7歲以上,我建議你問一個新問題 – Catchwa 2017-11-14 22:33:52
我算出的溶液象下面 -
@Endpoint
public class DataEndpoints {
....
....
private HttpServletRequest httpServletRequest;
@Autowired
public void setRequest(HttpServletRequest request) {
this.httpServletRequest = request;
}
@PayloadRoot(namespace = employeeNS, localPart = "syncRelation")
@ResponsePayload
public SyncRelationResponse dataSync(@RequestPayload SyncOrderRelation request) {
String incoming = "IP Address -> " + this.httpServletRequest.getRemoteAddr();
}
}
通過使用以下的方法,我可以直接訪問的HttpServletRequest。然後我可以訪問我需要的所有數據。
我希望它能在這方面幫助別人。
看起來像我將不得不嘗試使用該HTTP頭對象。有沒有像默認情況下通過的頭文件中的元數據,還是嚴格地把它放在頭文件中? – user450937 2010-04-15 19:03:33