estoy usando siguiente código para obtener la dirección IP del cliente para una JAX-WS de una vía llamada al método:manera confiable para obtener la dirección IP del cliente en CXF JAX-WS de una vía llamada al método
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;
}
Cuando se conectan múltiples clientes, la dirección IP recuperada para una solicitud ocasionalmente es un valor incorrecto en caché de una solicitud anterior. ¿Cuál es una forma confiable de obtener la dirección IP del originador de llamada unidireccional?
Voy a mirar a través de WS-Addressing si puede ayudar. Estoy usando cxf-2.5.2 ejecutándose en tomcat-6.0.35. – amo