Removed googleauth library.
This commit is contained in:
@@ -5,7 +5,6 @@
|
|||||||
<classpathentry kind="lib" path="dist/libs/cron4j-2.2.5.jar"/>
|
<classpathentry kind="lib" path="dist/libs/cron4j-2.2.5.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/ecj-4.4.2.jar"/>
|
<classpathentry kind="lib" path="dist/libs/ecj-4.4.2.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/exp4j-0.4.7.jar"/>
|
<classpathentry kind="lib" path="dist/libs/exp4j-0.4.7.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/googleauth-1.1.0.jar"/>
|
|
||||||
<classpathentry kind="lib" path="dist/libs/mail-1.5.2.jar"/>
|
<classpathentry kind="lib" path="dist/libs/mail-1.5.2.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/mchange-commons-java-0.2.11.jar"/>
|
<classpathentry kind="lib" path="dist/libs/mchange-commons-java-0.2.11.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/mysql-connector-java-5.1.38-bin.jar"/>
|
<classpathentry kind="lib" path="dist/libs/mysql-connector-java-5.1.38-bin.jar"/>
|
||||||
|
BIN
L2J_Mobius_Classic/dist/libs/googleauth-1.1.0.jar
vendored
BIN
L2J_Mobius_Classic/dist/libs/googleauth-1.1.0.jar
vendored
Binary file not shown.
@@ -77,7 +77,6 @@ public class LoginController
|
|||||||
private static final String ACCOUNT_ACCESS_LEVEL_UPDATE = "UPDATE accounts SET accessLevel = ? WHERE login = ?";
|
private static final String ACCOUNT_ACCESS_LEVEL_UPDATE = "UPDATE accounts SET accessLevel = ? WHERE login = ?";
|
||||||
private static final String ACCOUNT_IPS_UPDATE = "UPDATE accounts SET pcIp = ?, hop1 = ?, hop2 = ?, hop3 = ?, hop4 = ? WHERE login = ?";
|
private static final String ACCOUNT_IPS_UPDATE = "UPDATE accounts SET pcIp = ?, hop1 = ?, hop2 = ?, hop3 = ?, hop4 = ? WHERE login = ?";
|
||||||
private static final String ACCOUNT_IPAUTH_SELECT = "SELECT * FROM accounts_ipauth WHERE login = ?";
|
private static final String ACCOUNT_IPAUTH_SELECT = "SELECT * FROM accounts_ipauth WHERE login = ?";
|
||||||
private static final String ACCOUNT_OTP_SELECT = "SELECT value FROM account_data WHERE account_name = ? AND var = 'otp'";
|
|
||||||
|
|
||||||
private LoginController() throws GeneralSecurityException
|
private LoginController() throws GeneralSecurityException
|
||||||
{
|
{
|
||||||
@@ -237,18 +236,6 @@ public class LoginController
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
try (PreparedStatement otpPs = con.prepareStatement(ACCOUNT_OTP_SELECT))
|
|
||||||
{
|
|
||||||
otpPs.setString(1, login);
|
|
||||||
try (ResultSet otpRset = otpPs.executeQuery())
|
|
||||||
{
|
|
||||||
if (otpRset.next())
|
|
||||||
{
|
|
||||||
info.setOTP(otpRset.getString(1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
clearFailedLoginAttemps(addr);
|
clearFailedLoginAttemps(addr);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
@@ -18,8 +18,6 @@ package com.l2jmobius.loginserver.model.data;
|
|||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import com.warrenstrange.googleauth.GoogleAuthenticator;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author HorridoJoho
|
* @author HorridoJoho
|
||||||
*/
|
*/
|
||||||
@@ -29,7 +27,6 @@ public final class AccountInfo
|
|||||||
private final String _passHash;
|
private final String _passHash;
|
||||||
private final int _accessLevel;
|
private final int _accessLevel;
|
||||||
private final int _lastServer;
|
private final int _lastServer;
|
||||||
private String _otpKey;
|
|
||||||
|
|
||||||
public AccountInfo(String login, String passHash, int accessLevel, int lastServer)
|
public AccountInfo(String login, String passHash, int accessLevel, int lastServer)
|
||||||
{
|
{
|
||||||
@@ -51,23 +48,6 @@ public final class AccountInfo
|
|||||||
_lastServer = lastServer;
|
_lastServer = lastServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOTP(String otpKey)
|
|
||||||
{
|
|
||||||
_otpKey = otpKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean checkOTP(int otp)
|
|
||||||
{
|
|
||||||
if (_otpKey == null)
|
|
||||||
{
|
|
||||||
// No OTP set
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
final GoogleAuthenticator gAuth = new GoogleAuthenticator();
|
|
||||||
return gAuth.authorize(_otpKey, otp);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean checkPassHash(String passHash)
|
public boolean checkPassHash(String passHash)
|
||||||
{
|
{
|
||||||
return _passHash.equals(passHash);
|
return _passHash.equals(passHash);
|
||||||
|
@@ -34,7 +34,6 @@ import com.l2jmobius.loginserver.network.serverpackets.AccountKicked;
|
|||||||
import com.l2jmobius.loginserver.network.serverpackets.AccountKicked.AccountKickedReason;
|
import com.l2jmobius.loginserver.network.serverpackets.AccountKicked.AccountKickedReason;
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason;
|
import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason;
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.LoginOk;
|
import com.l2jmobius.loginserver.network.serverpackets.LoginOk;
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.LoginOtpFail;
|
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.ServerList;
|
import com.l2jmobius.loginserver.network.serverpackets.ServerList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,7 +52,6 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
|
|
||||||
private String _user;
|
private String _user;
|
||||||
private String _password;
|
private String _password;
|
||||||
private int _ncotp;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
@@ -71,11 +69,6 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
return _user;
|
return _user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getOneTimePassword()
|
|
||||||
{
|
|
||||||
return _ncotp;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean readImpl()
|
public boolean readImpl()
|
||||||
{
|
{
|
||||||
@@ -121,13 +114,11 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
{
|
{
|
||||||
_user = new String(decrypted, 0x4E, 50).trim() + new String(decrypted, 0xCE, 14).trim();
|
_user = new String(decrypted, 0x4E, 50).trim() + new String(decrypted, 0xCE, 14).trim();
|
||||||
_password = new String(decrypted, 0xDC, 16).trim();
|
_password = new String(decrypted, 0xDC, 16).trim();
|
||||||
_ncotp = (decrypted[0xFC] & 0xFF) | ((decrypted[0xFD] & 0xFF) << 8) | ((decrypted[0xFE] & 0xFF) << 16) | ((decrypted[0xFF] & 0xFF) << 24);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_user = new String(decrypted, 0x5E, 14).trim();
|
_user = new String(decrypted, 0x5E, 14).trim();
|
||||||
_password = new String(decrypted, 0x6C, 16).trim();
|
_password = new String(decrypted, 0x6C, 16).trim();
|
||||||
_ncotp = (decrypted[0x7C] & 0xFF) | ((decrypted[0x7D] & 0xFF) << 8) | ((decrypted[0x7E] & 0xFF) << 16) | ((decrypted[0x7F] & 0xFF) << 24);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@@ -145,11 +136,6 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG);
|
client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!info.checkOTP(_ncotp))
|
|
||||||
{
|
|
||||||
client.sendPacket(new LoginOtpFail());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final AuthLoginResult result = lc.tryCheckinAccount(client, clientAddr, info);
|
final AuthLoginResult result = lc.tryCheckinAccount(client, clientAddr, info);
|
||||||
switch (result)
|
switch (result)
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/googleauth-1.1.0.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/googleauth-1.1.0.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
|
@@ -5,7 +5,6 @@
|
|||||||
<classpathentry kind="lib" path="dist/libs/cron4j-2.2.5.jar"/>
|
<classpathentry kind="lib" path="dist/libs/cron4j-2.2.5.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/ecj-4.4.2.jar"/>
|
<classpathentry kind="lib" path="dist/libs/ecj-4.4.2.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/exp4j-0.4.7.jar"/>
|
<classpathentry kind="lib" path="dist/libs/exp4j-0.4.7.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/googleauth-1.1.0.jar"/>
|
|
||||||
<classpathentry kind="lib" path="dist/libs/mail-1.5.2.jar"/>
|
<classpathentry kind="lib" path="dist/libs/mail-1.5.2.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/mchange-commons-java-0.2.11.jar"/>
|
<classpathentry kind="lib" path="dist/libs/mchange-commons-java-0.2.11.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/mysql-connector-java-5.1.38-bin.jar"/>
|
<classpathentry kind="lib" path="dist/libs/mysql-connector-java-5.1.38-bin.jar"/>
|
||||||
|
BIN
L2J_Mobius_Helios/dist/libs/googleauth-1.1.0.jar
vendored
BIN
L2J_Mobius_Helios/dist/libs/googleauth-1.1.0.jar
vendored
Binary file not shown.
@@ -77,7 +77,6 @@ public class LoginController
|
|||||||
private static final String ACCOUNT_ACCESS_LEVEL_UPDATE = "UPDATE accounts SET accessLevel = ? WHERE login = ?";
|
private static final String ACCOUNT_ACCESS_LEVEL_UPDATE = "UPDATE accounts SET accessLevel = ? WHERE login = ?";
|
||||||
private static final String ACCOUNT_IPS_UPDATE = "UPDATE accounts SET pcIp = ?, hop1 = ?, hop2 = ?, hop3 = ?, hop4 = ? WHERE login = ?";
|
private static final String ACCOUNT_IPS_UPDATE = "UPDATE accounts SET pcIp = ?, hop1 = ?, hop2 = ?, hop3 = ?, hop4 = ? WHERE login = ?";
|
||||||
private static final String ACCOUNT_IPAUTH_SELECT = "SELECT * FROM accounts_ipauth WHERE login = ?";
|
private static final String ACCOUNT_IPAUTH_SELECT = "SELECT * FROM accounts_ipauth WHERE login = ?";
|
||||||
private static final String ACCOUNT_OTP_SELECT = "SELECT value FROM account_data WHERE account_name = ? AND var = 'otp'";
|
|
||||||
|
|
||||||
private LoginController() throws GeneralSecurityException
|
private LoginController() throws GeneralSecurityException
|
||||||
{
|
{
|
||||||
@@ -237,18 +236,6 @@ public class LoginController
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
try (PreparedStatement otpPs = con.prepareStatement(ACCOUNT_OTP_SELECT))
|
|
||||||
{
|
|
||||||
otpPs.setString(1, login);
|
|
||||||
try (ResultSet otpRset = otpPs.executeQuery())
|
|
||||||
{
|
|
||||||
if (otpRset.next())
|
|
||||||
{
|
|
||||||
info.setOTP(otpRset.getString(1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
clearFailedLoginAttemps(addr);
|
clearFailedLoginAttemps(addr);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
@@ -18,8 +18,6 @@ package com.l2jmobius.loginserver.model.data;
|
|||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import com.warrenstrange.googleauth.GoogleAuthenticator;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author HorridoJoho
|
* @author HorridoJoho
|
||||||
*/
|
*/
|
||||||
@@ -29,7 +27,6 @@ public final class AccountInfo
|
|||||||
private final String _passHash;
|
private final String _passHash;
|
||||||
private final int _accessLevel;
|
private final int _accessLevel;
|
||||||
private final int _lastServer;
|
private final int _lastServer;
|
||||||
private String _otpKey;
|
|
||||||
|
|
||||||
public AccountInfo(String login, String passHash, int accessLevel, int lastServer)
|
public AccountInfo(String login, String passHash, int accessLevel, int lastServer)
|
||||||
{
|
{
|
||||||
@@ -51,23 +48,6 @@ public final class AccountInfo
|
|||||||
_lastServer = lastServer;
|
_lastServer = lastServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOTP(String otpKey)
|
|
||||||
{
|
|
||||||
_otpKey = otpKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean checkOTP(int otp)
|
|
||||||
{
|
|
||||||
if (_otpKey == null)
|
|
||||||
{
|
|
||||||
// No OTP set
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
final GoogleAuthenticator gAuth = new GoogleAuthenticator();
|
|
||||||
return gAuth.authorize(_otpKey, otp);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean checkPassHash(String passHash)
|
public boolean checkPassHash(String passHash)
|
||||||
{
|
{
|
||||||
return _passHash.equals(passHash);
|
return _passHash.equals(passHash);
|
||||||
|
@@ -34,7 +34,6 @@ import com.l2jmobius.loginserver.network.serverpackets.AccountKicked;
|
|||||||
import com.l2jmobius.loginserver.network.serverpackets.AccountKicked.AccountKickedReason;
|
import com.l2jmobius.loginserver.network.serverpackets.AccountKicked.AccountKickedReason;
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason;
|
import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason;
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.LoginOk;
|
import com.l2jmobius.loginserver.network.serverpackets.LoginOk;
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.LoginOtpFail;
|
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.ServerList;
|
import com.l2jmobius.loginserver.network.serverpackets.ServerList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,7 +52,6 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
|
|
||||||
private String _user;
|
private String _user;
|
||||||
private String _password;
|
private String _password;
|
||||||
private int _ncotp;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
@@ -71,11 +69,6 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
return _user;
|
return _user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getOneTimePassword()
|
|
||||||
{
|
|
||||||
return _ncotp;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean readImpl()
|
public boolean readImpl()
|
||||||
{
|
{
|
||||||
@@ -121,13 +114,11 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
{
|
{
|
||||||
_user = new String(decrypted, 0x4E, 50).trim() + new String(decrypted, 0xCE, 14).trim();
|
_user = new String(decrypted, 0x4E, 50).trim() + new String(decrypted, 0xCE, 14).trim();
|
||||||
_password = new String(decrypted, 0xDC, 16).trim();
|
_password = new String(decrypted, 0xDC, 16).trim();
|
||||||
_ncotp = (decrypted[0xFC] & 0xFF) | ((decrypted[0xFD] & 0xFF) << 8) | ((decrypted[0xFE] & 0xFF) << 16) | ((decrypted[0xFF] & 0xFF) << 24);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_user = new String(decrypted, 0x5E, 14).trim();
|
_user = new String(decrypted, 0x5E, 14).trim();
|
||||||
_password = new String(decrypted, 0x6C, 16).trim();
|
_password = new String(decrypted, 0x6C, 16).trim();
|
||||||
_ncotp = (decrypted[0x7C] & 0xFF) | ((decrypted[0x7D] & 0xFF) << 8) | ((decrypted[0x7E] & 0xFF) << 16) | ((decrypted[0x7F] & 0xFF) << 24);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@@ -145,11 +136,6 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG);
|
client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!info.checkOTP(_ncotp))
|
|
||||||
{
|
|
||||||
client.sendPacket(new LoginOtpFail());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final AuthLoginResult result = lc.tryCheckinAccount(client, clientAddr, info);
|
final AuthLoginResult result = lc.tryCheckinAccount(client, clientAddr, info);
|
||||||
switch (result)
|
switch (result)
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/googleauth-1.1.0.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/googleauth-1.1.0.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Helios/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
|
@@ -5,7 +5,6 @@
|
|||||||
<classpathentry kind="lib" path="dist/libs/cron4j-2.2.5.jar"/>
|
<classpathentry kind="lib" path="dist/libs/cron4j-2.2.5.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/ecj-4.4.2.jar"/>
|
<classpathentry kind="lib" path="dist/libs/ecj-4.4.2.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/exp4j-0.4.7.jar"/>
|
<classpathentry kind="lib" path="dist/libs/exp4j-0.4.7.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/googleauth-1.1.0.jar"/>
|
|
||||||
<classpathentry kind="lib" path="dist/libs/mail-1.5.2.jar"/>
|
<classpathentry kind="lib" path="dist/libs/mail-1.5.2.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/mchange-commons-java-0.2.11.jar"/>
|
<classpathentry kind="lib" path="dist/libs/mchange-commons-java-0.2.11.jar"/>
|
||||||
<classpathentry kind="lib" path="dist/libs/mysql-connector-java-5.1.38-bin.jar"/>
|
<classpathentry kind="lib" path="dist/libs/mysql-connector-java-5.1.38-bin.jar"/>
|
||||||
|
Binary file not shown.
@@ -77,7 +77,6 @@ public class LoginController
|
|||||||
private static final String ACCOUNT_ACCESS_LEVEL_UPDATE = "UPDATE accounts SET accessLevel = ? WHERE login = ?";
|
private static final String ACCOUNT_ACCESS_LEVEL_UPDATE = "UPDATE accounts SET accessLevel = ? WHERE login = ?";
|
||||||
private static final String ACCOUNT_IPS_UPDATE = "UPDATE accounts SET pcIp = ?, hop1 = ?, hop2 = ?, hop3 = ?, hop4 = ? WHERE login = ?";
|
private static final String ACCOUNT_IPS_UPDATE = "UPDATE accounts SET pcIp = ?, hop1 = ?, hop2 = ?, hop3 = ?, hop4 = ? WHERE login = ?";
|
||||||
private static final String ACCOUNT_IPAUTH_SELECT = "SELECT * FROM accounts_ipauth WHERE login = ?";
|
private static final String ACCOUNT_IPAUTH_SELECT = "SELECT * FROM accounts_ipauth WHERE login = ?";
|
||||||
private static final String ACCOUNT_OTP_SELECT = "SELECT value FROM account_data WHERE account_name = ? AND var = 'otp'";
|
|
||||||
|
|
||||||
private LoginController() throws GeneralSecurityException
|
private LoginController() throws GeneralSecurityException
|
||||||
{
|
{
|
||||||
@@ -237,18 +236,6 @@ public class LoginController
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
try (PreparedStatement otpPs = con.prepareStatement(ACCOUNT_OTP_SELECT))
|
|
||||||
{
|
|
||||||
otpPs.setString(1, login);
|
|
||||||
try (ResultSet otpRset = otpPs.executeQuery())
|
|
||||||
{
|
|
||||||
if (otpRset.next())
|
|
||||||
{
|
|
||||||
info.setOTP(otpRset.getString(1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
clearFailedLoginAttemps(addr);
|
clearFailedLoginAttemps(addr);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
@@ -18,8 +18,6 @@ package com.l2jmobius.loginserver.model.data;
|
|||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import com.warrenstrange.googleauth.GoogleAuthenticator;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author HorridoJoho
|
* @author HorridoJoho
|
||||||
*/
|
*/
|
||||||
@@ -29,7 +27,6 @@ public final class AccountInfo
|
|||||||
private final String _passHash;
|
private final String _passHash;
|
||||||
private final int _accessLevel;
|
private final int _accessLevel;
|
||||||
private final int _lastServer;
|
private final int _lastServer;
|
||||||
private String _otpKey;
|
|
||||||
|
|
||||||
public AccountInfo(String login, String passHash, int accessLevel, int lastServer)
|
public AccountInfo(String login, String passHash, int accessLevel, int lastServer)
|
||||||
{
|
{
|
||||||
@@ -51,23 +48,6 @@ public final class AccountInfo
|
|||||||
_lastServer = lastServer;
|
_lastServer = lastServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOTP(String otpKey)
|
|
||||||
{
|
|
||||||
_otpKey = otpKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean checkOTP(int otp)
|
|
||||||
{
|
|
||||||
if (_otpKey == null)
|
|
||||||
{
|
|
||||||
// No OTP set
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
final GoogleAuthenticator gAuth = new GoogleAuthenticator();
|
|
||||||
return gAuth.authorize(_otpKey, otp);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean checkPassHash(String passHash)
|
public boolean checkPassHash(String passHash)
|
||||||
{
|
{
|
||||||
return _passHash.equals(passHash);
|
return _passHash.equals(passHash);
|
||||||
|
@@ -34,7 +34,6 @@ import com.l2jmobius.loginserver.network.serverpackets.AccountKicked;
|
|||||||
import com.l2jmobius.loginserver.network.serverpackets.AccountKicked.AccountKickedReason;
|
import com.l2jmobius.loginserver.network.serverpackets.AccountKicked.AccountKickedReason;
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason;
|
import com.l2jmobius.loginserver.network.serverpackets.LoginFail.LoginFailReason;
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.LoginOk;
|
import com.l2jmobius.loginserver.network.serverpackets.LoginOk;
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.LoginOtpFail;
|
|
||||||
import com.l2jmobius.loginserver.network.serverpackets.ServerList;
|
import com.l2jmobius.loginserver.network.serverpackets.ServerList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,7 +52,6 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
|
|
||||||
private String _user;
|
private String _user;
|
||||||
private String _password;
|
private String _password;
|
||||||
private int _ncotp;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
@@ -71,11 +69,6 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
return _user;
|
return _user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getOneTimePassword()
|
|
||||||
{
|
|
||||||
return _ncotp;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean readImpl()
|
public boolean readImpl()
|
||||||
{
|
{
|
||||||
@@ -121,13 +114,11 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
{
|
{
|
||||||
_user = new String(decrypted, 0x4E, 50).trim() + new String(decrypted, 0xCE, 14).trim();
|
_user = new String(decrypted, 0x4E, 50).trim() + new String(decrypted, 0xCE, 14).trim();
|
||||||
_password = new String(decrypted, 0xDC, 16).trim();
|
_password = new String(decrypted, 0xDC, 16).trim();
|
||||||
_ncotp = (decrypted[0xFC] & 0xFF) | ((decrypted[0xFD] & 0xFF) << 8) | ((decrypted[0xFE] & 0xFF) << 16) | ((decrypted[0xFF] & 0xFF) << 24);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_user = new String(decrypted, 0x5E, 14).trim();
|
_user = new String(decrypted, 0x5E, 14).trim();
|
||||||
_password = new String(decrypted, 0x6C, 16).trim();
|
_password = new String(decrypted, 0x6C, 16).trim();
|
||||||
_ncotp = (decrypted[0x7C] & 0xFF) | ((decrypted[0x7D] & 0xFF) << 8) | ((decrypted[0x7E] & 0xFF) << 16) | ((decrypted[0x7F] & 0xFF) << 24);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@@ -145,11 +136,6 @@ public class RequestAuthLogin extends L2LoginClientPacket
|
|||||||
client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG);
|
client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!info.checkOTP(_ncotp))
|
|
||||||
{
|
|
||||||
client.sendPacket(new LoginOtpFail());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final AuthLoginResult result = lc.tryCheckinAccount(client, clientAddr, info);
|
final AuthLoginResult result = lc.tryCheckinAccount(client, clientAddr, info);
|
||||||
switch (result)
|
switch (result)
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/googleauth-1.1.0.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/googleauth-1.1.0.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/cron4j-2.2.5.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/exp4j-0.4.7.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mail-1.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mchange-commons-java-0.2.11.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/mysql-connector-java-5.1.38-bin.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Underground/dist/libs/netty-all-5.0.0.Alpha2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
|
Reference in New Issue
Block a user