Advertisement
Guest User

Untitled

a guest
Sep 18th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.07 KB | None | 0 0
  1. package com.l2wolf.hook;
  2. import java.sql.Connection;
  3. import java.sql.Date;
  4. import java.sql.DriverManager;
  5. import java.sql.SQLException;
  6. import java.security.*;
  7. import java.util.Locale;
  8.  
  9. import javax.annotation.Resource;
  10. import javax.sql.DataSource;
  11.  
  12.  
  13. import com.liferay.portal.kernel.exception.PortalException;
  14. import com.liferay.portal.kernel.exception.SystemException;
  15. import com.liferay.portal.model.User;
  16. import com.liferay.portal.service.ServiceContext;
  17. import com.liferay.portal.service.UserLocalService;
  18. import com.liferay.portal.service.UserLocalServiceWrapper;
  19. import com.liferay.portal.service.persistence.UserUtil;
  20. import com.mysql.jdbc.PreparedStatement;
  21.  
  22. public class L2WolfUserLocalServiceImpl extends UserLocalServiceWrapper {
  23.  
  24.  
  25.  
  26. @Resource(name="jdbc/L2WolfGame")
  27. DataSource datasource;
  28.  
  29.  
  30.  
  31. public L2WolfUserLocalServiceImpl(UserLocalService userLocalService) {
  32. super(userLocalService);
  33. }
  34.  
  35.  
  36. private final Connection newConnection() {
  37. return null;
  38. }
  39.  
  40.  
  41. /*@Override
  42. public int authenticateByScreenName(long companyId, java.lang.String screenName, java.lang.String password, java.util.Map headerMap, java.util.Map parameterMap) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException {
  43. System.out.println("authenticateByScreenName called "+screenName);
  44. return super.authenticateByScreenName(companyId, screenName, password, headerMap, parameterMap);
  45. }*/
  46.  
  47.  
  48.  
  49. @Override
  50. public User addUser(long creatorUserId, long companyId,
  51. boolean autoPassword, String password1, String password2,
  52. boolean autoScreenName, String screenName, String emailAddress,
  53. long facebookId, String openId, Locale locale, String firstName,
  54. String middleName, String lastName, int prefixId, int suffixId,
  55. boolean male, int birthdayMonth, int birthdayDay, int birthdayYear,
  56. String jobTitle, long[] groupIds, long[] organizationIds,
  57. long[] roleIds, long[] userGroupIds, boolean sendEmail,
  58. ServiceContext serviceContext) throws PortalException,
  59. SystemException {
  60. /*try {
  61. System.out.println("Adding new user:"+screenName+"*"+password1+"*");
  62. if(password1 != null && password2 != null) {
  63. //addGameServerUser( screenName , password1 , password2 );
  64. if(password1.equals(password2)) {
  65.  
  66. }
  67. //pingameServer();
  68. } else {
  69. throw new PortalException("Password is wrong");
  70. }
  71. } catch(Exception epx) {
  72. epx.printStackTrace( );
  73. throw new PortalException("Unable to establish connection remote server.Try again later");
  74. }
  75. */
  76. User usr = super.addUser(creatorUserId, companyId, autoPassword, password1,
  77. password2, autoScreenName, screenName, emailAddress, facebookId,
  78. openId, locale, firstName, middleName, lastName, prefixId, suffixId,
  79. male, birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds,
  80. organizationIds, roleIds, userGroupIds, sendEmail, serviceContext);
  81. if(usr != null) {
  82. try {
  83. System.out.println("Adding new user:"+screenName+"*"+password1+"*");
  84. addGameServerUser( "68.68.68.68" , password1 , screenName );
  85. System.out.println("Done!");
  86. } catch (Exception e) {
  87. // TODO Auto-generated catch block
  88. e.printStackTrace();
  89. UserUtil.remove(usr.getUserId());
  90. throw new PortalException("Unable to establish connection remote server.Try again later");
  91. //super.deleteUser(userId);
  92. }
  93. }
  94.  
  95. return usr;
  96. }
  97.  
  98.  
  99. /*
  100. @Override
  101. public User addUser( User user ) throws SystemException {
  102. System.out.println("User Created !!!! Passssssssssssssssssssssssssssssssssssssssssssssssssssssssss");
  103. return super.addUser(user);
  104. }
  105. */
  106.  
  107.  
  108. @Override
  109. public void deleteUser(long userId) throws com.liferay.portal.kernel.exception.PortalException {
  110. try {
  111. //pingameServer();
  112.  
  113.  
  114. try {
  115.  
  116. User user = UserUtil.findByContactId( userId );
  117. if(user != null) {
  118. Connection conn = newConnection();//datasource.getConnection();
  119. java.sql.PreparedStatement ps = conn.prepareStatement("delete from accounts where login=?");
  120. ps.setString(1, user.getScreenName() );
  121. ps.executeUpdate();
  122. ps.close();
  123. conn.close();
  124.  
  125. Class.forName("com.mysqljdbc.Driver");
  126. Connection conn2 = DriverManager.getConnection("jdbc:mysql://game.l2wolf.com/L2JEP?characterEncoding=utf8&useUnicode=true","xxxxxx","xxxxxx");
  127. ps = conn2.prepareStatement("update characters set account_name=? where account_name=?");
  128. ps.setString(1, "-/"+user.getScreenName() );
  129. ps.setString(2, user.getScreenName() );
  130. ps.executeUpdate();
  131.  
  132. ps.close();
  133.  
  134. conn2.close();
  135.  
  136. super.deleteUser(userId);
  137.  
  138. }
  139. } catch (SQLException e) {
  140. // TODO Auto-generated catch block
  141. e.printStackTrace( );
  142. }
  143.  
  144. /*
  145. UPDATE characters SET deletetime=1 WHERE level<=20 AND (UNIX_TIMESTAMP()*1000-lastAccess) >= 10368000000;
  146. UPDATE characters SET account=momo61 WHERE deletion_time=1;
  147. *
  148. /*
  149. //DELETE FROM character_premium_items WHERE charId NOT IN (SELECT charId FROM characters);
  150. DELETE FROM character_friends WHERE charId NOT IN (SELECT charId FROM characters);
  151. DELETE FROM character_hennas WHERE charId NOT IN (SELECT charId FROM characters);
  152. DELETE FROM character_macroses WHERE charId NOT IN (SELECT charId FROM characters);
  153. DELETE FROM character_quests WHERE charId NOT IN (SELECT charId FROM characters);
  154. DELETE FROM character_quests_item WHERE charId NOT IN (SELECT charId FROM characters);
  155. DELETE FROM character_quests_global_data WHERE charId NOT IN (SELECT charId FROM characters);
  156. DELETE FROM character_recipebook WHERE charId NOT IN (SELECT charId FROM characters);
  157. DELETE FROM character_recipeshoplist WHERE charId NOT IN (SELECT charId FROM characters);
  158. DELETE FROM character_recommends WHERE charId NOT IN (SELECT charId FROM characters);
  159. DELETE FROM character_relations WHERE charId NOT IN (SELECT charId FROM characters);
  160. DELETE FROM character_shortcuts WHERE charId NOT IN (SELECT charId FROM characters);
  161. DELETE FROM character_skills WHERE charId NOT IN (SELECT charId FROM characters);
  162. DELETE FROM character_skills_save WHERE charId NOT IN (SELECT charId FROM characters);
  163. DELETE FROM character_subclasses WHERE charId NOT IN (SELECT charId FROM characters);
  164. DELETE FROM character_raid_points WHERE charId NOT IN (SELECT charId FROM characters);
  165.  
  166. DELETE FROM clan_data WHERE leader_id NOT IN (SELECT charId FROM characters);
  167. DELETE FROM clan_privs WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
  168. DELETE FROM clan_skills WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
  169. DELETE FROM clan_introductions WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
  170. DELETE FROM clan_notices WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
  171. DELETE FROM clan_wars WHERE clan1 NOT IN (SELECT clan_id FROM clan_data) OR clan2 NOT IN (SELECT clan_id FROM clan_data);
  172. UPDATE clan_subpledges SET leader_id = 0 where leader_id NOT IN (SELECT charid from characters);
  173. DELETE FROM fortsiege_clans WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
  174.  
  175. DELETE FROM pets WHERE item_obj_id NOT IN (SELECT object_id FROM items WHERE owner_id IN (SELECT charId FROM characters));
  176. DELETE FROM items WHERE owner_id NOT IN (SELECT charId FROM characters) AND owner_id NOT IN (SELECT clan_id FROM clan_data);
  177. DELETE FROM seven_signs WHERE charId NOT IN (SELECT charId FROM characters);
  178. UPDATE characters SET clanid = 0, title = "", clan_privs = 0 where clanid NOT IN (SELECT clan_id FROM clan_data);
  179. UPDATE clanhall SET ownerId = 0, paidUntil = 0 where ownerId NOT IN (SELECT clan_id FROM clan_data);
  180. DELETE FROM olympiad_nobles WHERE charId NOT IN (SELECT charId FROM characters);
  181. DELETE FROM olympiad_nobles_eom WHERE charId NOT IN (SELECT charId FROM characters);
  182. DELETE FROM heroes WHERE charId NOT IN (SELECT charId FROM characters);
  183. DELETE FROM item_attributes WHERE itemId NOT IN (SELECT object_id FROM items);
  184. DELETE FROM siege_clans WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
  185. DELETE FROM obj_restrictions WHERE obj_Id NOT IN (SELECT charId FROM characters);
  186.  
  187. DELETE FROM accounts WHERE login NOT IN (SELECT account_name FROM characters);
  188. DELETE FROM accounts2 WHERE login NOT IN (SELECT account_name FROM characters);
  189. DELETE FROM account_data WHERE account_name NOT IN (SELECT login FROM accounts);
  190. * */
  191. } catch (Exception e) {
  192. // TODO Auto-generated catch block
  193. //e.printStackTrace();
  194. throw new PortalException("Unable to establish connection remote server.Try again later");
  195.  
  196. }
  197. }
  198.  
  199.  
  200. @Override
  201. public com.liferay.portal.model.User updateUser(long userId, java.lang.String oldPassword, java.lang.String newPassword1, java.lang.String newPassword2, boolean passwordReset, java.lang.String reminderQueryQuestion, java.lang.String reminderQueryAnswer, java.lang.String screenName, java.lang.String emailAddress, long facebookId, java.lang.String openId, java.lang.String languageId, java.lang.String timeZoneId, java.lang.String greeting, java.lang.String comments, java.lang.String firstName, java.lang.String middleName, java.lang.String lastName, int prefixId, int suffixId, boolean male, int birthdayMonth, int birthdayDay, int birthdayYear, java.lang.String smsSn, java.lang.String aimSn, java.lang.String facebookSn, java.lang.String icqSn, java.lang.String jabberSn, java.lang.String msnSn, java.lang.String mySpaceSn, java.lang.String skypeSn, java.lang.String twitterSn, java.lang.String ymSn, java.lang.String jobTitle, long[] groupIds, long[] organizationIds, long[] roleIds, java.util.List userGroupRoles, long[] userGroupIds, com.liferay.portal.service.ServiceContext serviceContext) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException {
  202.  
  203. if(newPassword1.equals(newPassword2)) {
  204. if(!oldPassword.equals(newPassword1)) {
  205. try {
  206. changeGamePassword( screenName , newPassword1 );
  207. } catch (Exception e) {
  208. // TODO Auto-generated catch block
  209. //e.printStackTrace();
  210. throw new PortalException("Unable to establish connection remote server.Try again later");
  211. }
  212. }
  213. }
  214.  
  215. //System.out.println("update user called");
  216. User usr = super.updateUser(userId, oldPassword, newPassword1, newPassword2, passwordReset, reminderQueryQuestion, reminderQueryAnswer, screenName, emailAddress, facebookId, openId, languageId, timeZoneId, greeting, comments, firstName, middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, smsSn, aimSn, facebookSn, icqSn, jabberSn, msnSn, mySpaceSn, skypeSn, twitterSn, ymSn, jobTitle, groupIds, organizationIds, roleIds, userGroupRoles, userGroupIds, serviceContext);
  217.  
  218. return usr;
  219. }
  220.  
  221.  
  222.  
  223. private final void changeGamePassword(String usr,String new_passwd) throws Exception {
  224.  
  225. Connection conn = newConnection();//datasource.getConnection();
  226. MessageDigest md = MessageDigest.getInstance("SHA");
  227. byte[] raw = new_passwd.getBytes("UTF-8");
  228. byte[] hash = md.digest( raw );
  229.  
  230. java.sql.PreparedStatement statement;
  231. //(login,password,lastactive,accessLevel,lastIP,lastServer,userIP,pcIp,hop1,hop2,hop3,hop4) values(?,?,?,?,?,?,?,?,?,?,?,?);");
  232. statement = conn.prepareStatement("UPDATE accounts SET password=? where login=?;");
  233. //com.liferay.portal.kernel.util.Base64.encode(hash)
  234. statement.setString( 1 , usr );
  235. statement.setString( 2, com.liferay.portal.kernel.util.Base64.encode(hash) );
  236.  
  237.  
  238. if(statement.executeUpdate() <= 0) {
  239. throw new PortalException("Communication failed with gameserver");
  240. }
  241.  
  242. }
  243.  
  244.  
  245. /*
  246. private final void pingameServer( ) throws Exception {
  247. Connection conn = datasource.getConnection();
  248. java.sql.Statement statement;
  249. statement = conn.createStatement();
  250. statement.execute("SELECT 1;");
  251. }
  252. */
  253.  
  254.  
  255. private final void addGameServerUser( String ip_addr , String password , String user ) throws Exception {
  256. System.out.println("Start of DB");
  257. Connection conn = newConnection();//datasource.getConnection();
  258. MessageDigest md = MessageDigest.getInstance("SHA");
  259. byte[] raw = password.getBytes("UTF-8");
  260. byte[] hash = md.digest( raw );
  261.  
  262. java.sql.PreparedStatement statement;
  263.  
  264. statement = conn.prepareStatement("INSERT INTO accounts (login,password,lastactive,accessLevel,lastIP) values(?,?,?,?,?);");
  265. statement.setString(1, user );
  266. statement.setString(2, com.liferay.portal.kernel.util.Base64.encode(hash) );
  267. statement.setLong(3, System.currentTimeMillis());
  268. statement.setInt(4, 0);
  269. statement.setString(5, ip_addr );
  270.  
  271. statement.execute( );
  272. statement.close( );
  273. System.out.println("END of DB");
  274. }
  275. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement