cxf获取客户端Ip
最近这几天在做一个用户同步,具体就是当权限系统中添加用户后,把该用户的信息同步到论坛系统中去,服务器端发布webservice采用的是cxf框架,这时候一个业务需求就是能获取到客户端的ip,并将这字段存到数据库中,用于论坛统计。
import java.io.Reader; import javax.annotation.Resource; import org.apache.commons.logging.Log; import cn.jsprun.dao.UserDao;
public void addUser(String xml) { try { SAXReader saxReader = new SAXReader(); Reader reader = new StringReader(xml); Document doc = saxReader.read(reader); Element root = doc.getRootElement(); List<Element> list = root.elements(); Members member = new Members(); int salt = Common.rand(100000,999999); member.setUsername(list.get(0).getText()); member.setPassword(Md5Token.getInstance().getLongToken(Md5Token.getInstance().getLongToken(list.get(1).getText())+salt)); member.setEmail(list.get(2).getText()); member.setSalt(String.valueOf(salt)); int groupId = 10; short id = (short)groupId; Short Id = id; member.setGroupid(Id); member.setRegip(this.getClientIpCxf()); member.setRegdate(Integer.valueOf(String.valueOf(new Date().getTime()).substring(0,10))); member.setLastip(this.getClientIpCxf()); member.setLastvisit(Integer.valueOf(String.valueOf(new Date().getTime()).substring(0,10))); member.setPmsound(Byte.valueOf("1")); member.setShowemail(Byte.valueOf("1")); member.setNewsletter(Byte.valueOf("1")); member.setTimeoffset("9999"); member.setLastactivity(Integer.valueOf(String.valueOf(new Date().getTime()).substring(0,10))); userDao.saveMember(member); } catch (Exception e) { } } public String getClientIpCxf() { MessageContext ctx = context.getMessageContext(); HttpServletRequest request = (HttpServletRequest) ctx.get(AbstractHTTPDestination.HTTP_REQUEST); String ip=request.getRemoteAddr(); return ip; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |