sto usando seguente codice per ottenere l'indirizzo IP del client per un metodo unidirezionale chiamata JAX-WS:modo affidabile per ottenere l'indirizzo IP del client in CXF JAX-WS metodo unidirezionale chiamata
protected HttpServletRequest getServletRequest() {
MessageContext ctx = wsContext.getMessageContext();
return (HttpServletRequest) ctx.get(MessageContext.SERVLET_REQUEST);
}
protected synchronized String getClientIp() {
String clientIp = "";
HttpServletRequest request = getServletRequest();
if (request != null) {
clientIp = request.getRemoteAddr();
// Handle proxy
String header = request.getHeader("x-forwarded-for");
if(header != null && !header.isEmpty()) {
clientIp = header.split(",")[0];
}
}
return clientIp;
}
Quando più client si connettono, l'indirizzo IP recuperato per una richiesta è occasionalmente un valore memorizzato nella cache non corretto da una richiesta precedente. Qual è un modo affidabile per ottenere l'indirizzo IP dell'originatore della chiamata unidirezionale?
Guarderò attraverso WS-Addressing se può aiutare. Sto usando cxf-2.5.2 in esecuzione su tomcat-6.0.35. – amo