我托管了一个用于共享交易详情的网络服务。有两个客户端与我的Web服务连接。 我的用户设置如下所示
出于安全原因,我在每次调用事务方法时使用以下方法获取客户端服务器的用户名和IP地址;
MessageContext msgCtxt = wsCtxt.getMessageContext();
HttpServletRequest req = (HttpServletRequest) msgCtxt.get(MessageContext.SERVLET_REQUEST);
String clientIp = req.getRemoteAddr();
String user = wsCtxt.getUserPrincipal().getName();
但是我有时会得到如下结果(这很少发生)。
我无法弄清楚我的上述代码是否存在任何问题,我将其用于此目的。
请建议。
编辑:
方法
public TranResponse sendTransaction(WebServiceContext wsCtxt, Transaction tran){
MessageContext msgCtxt = wsCtxt.getMessageContext();
HttpServletRequest req = (HttpServletRequest) msgCtxt.get(MessageContext.SERVLET_REQUEST);
String clientIp = req.getRemoteAddr();
String user = wsCtxt.getUserPrincipal().getName();
// more code
}