In the past few days, a user synchronization has been performed. Specifically, when a user is added to the permission system, the user information is synchronized to the forum system, webservice released on the server uses the cxf framework. In this case, a service requirement is to obtain the Client ip address and store this field in the database for Forum statistics.
Package com. bkbt. forum. service;
Import java. io. Reader;
Import java. io. StringReader;
Import java. util. Date;
Import java. util. List;
Import javax. annotation. Resource;
Import javax. jws. WebService;
Import javax. servlet. http. HttpServletRequest;
Import javax. xml. ws. WebServiceContext;
Import javax. xml. ws. handler. MessageContext;
Import org. apache. commons. logging. Log;
Import org. apache. commons. logging. LogFactory;
Import org. apache. cxf. transport. http. AbstractHTTPDestination;
Import org. dom4j. Document;
Import org. dom4j. Element;
Import org. dom4j. io. SAXReader;
Import cn. jsprun. dao. UserDao;
Import cn. jsprun. domain. Members;
Import cn. jsprun. utils. BeanFactory;
Import cn. jsprun. utils. Common;
Import cn. jsprun. utils. Md5Token;
@ WebService
Public class UserServiceImpl implements UserService {
Private Log log = LogFactory. getLog (UserServiceImpl. class );
Private UserDao userDao = (UserDao) BeanFactory. getBean ("userDao ");
@ Resource (name = "org. apache. cxf. jaxws. context. WebServiceContextImpl ")
Private WebServiceContext context;
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,999 999 );
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); www.2cto.com
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 (maid. HTTP_REQUEST );
String ip = request. getRemoteAddr ();
Return ip;
}
}
Author: jianhuili