diff --git a/LoginServer/src/org/moparscape/msc/ls/auth/Auth.java b/LoginServer/src/org/moparscape/msc/ls/auth/Auth.java index 668b00b..fe664d0 100644 --- a/LoginServer/src/org/moparscape/msc/ls/auth/Auth.java +++ b/LoginServer/src/org/moparscape/msc/ls/auth/Auth.java @@ -1,8 +1,7 @@ package org.moparscape.msc.ls.auth; public interface Auth { - - public boolean validate(String hashToUsername, String pass, - StringBuilder stringBuilder); + + boolean validate(long hash, String pass, StringBuilder stringBuilder); } diff --git a/LoginServer/src/org/moparscape/msc/ls/auth/impl/DummyAuth.java b/LoginServer/src/org/moparscape/msc/ls/auth/impl/DummyAuth.java index a70e7c5..3b6df1b 100644 --- a/LoginServer/src/org/moparscape/msc/ls/auth/impl/DummyAuth.java +++ b/LoginServer/src/org/moparscape/msc/ls/auth/impl/DummyAuth.java @@ -5,8 +5,7 @@ import org.moparscape.msc.ls.auth.Auth; class DummyAuth implements Auth { @Override - public boolean validate(String hashToUsername, String pass, - StringBuilder stringBuilder) { + public boolean validate(long hash, String pass, StringBuilder stringBuilder) { return true; } diff --git a/LoginServer/src/org/moparscape/msc/ls/auth/impl/PersistenceAuth.java b/LoginServer/src/org/moparscape/msc/ls/auth/impl/PersistenceAuth.java new file mode 100644 index 0000000..f3ee5aa --- /dev/null +++ b/LoginServer/src/org/moparscape/msc/ls/auth/impl/PersistenceAuth.java @@ -0,0 +1,14 @@ +package org.moparscape.msc.ls.auth.impl; + +import org.moparscape.msc.ls.Server; +import org.moparscape.msc.ls.auth.Auth; + +public class PersistenceAuth implements Auth { + + @Override + public boolean validate(long hash, String pass, + StringBuilder stringBuilder) { + return Server.storage.getPass(hash).equals(pass); + } + +} diff --git a/LoginServer/src/org/moparscape/msc/ls/auth/impl/WebsiteAuth.java b/LoginServer/src/org/moparscape/msc/ls/auth/impl/WebsiteAuth.java index 43eadbf..f5f1295 100644 --- a/LoginServer/src/org/moparscape/msc/ls/auth/impl/WebsiteAuth.java +++ b/LoginServer/src/org/moparscape/msc/ls/auth/impl/WebsiteAuth.java @@ -7,6 +7,7 @@ import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; +import org.moparscape.msc.gs.tools.DataConversions; import org.moparscape.msc.ls.auth.Auth; import org.moparscape.msc.ls.util.Config; @@ -14,7 +15,8 @@ class WebsiteAuth implements Auth { private final double version = 1.0; - public boolean validate(String user, String pass, StringBuilder response) { + public boolean validate(long hash, String pass, StringBuilder response) { + String user = DataConversions.hashToUsername(hash); // if authURL is null, then we are just running the server for test purposes // this will never be so in production if(Config.AUTH_META_DATA == null){ diff --git a/LoginServer/src/org/moparscape/msc/ls/packethandler/loginserver/PlayerLoginHandler.java b/LoginServer/src/org/moparscape/msc/ls/packethandler/loginserver/PlayerLoginHandler.java index 9219cdd..798ab36 100644 --- a/LoginServer/src/org/moparscape/msc/ls/packethandler/loginserver/PlayerLoginHandler.java +++ b/LoginServer/src/org/moparscape/msc/ls/packethandler/loginserver/PlayerLoginHandler.java @@ -61,13 +61,14 @@ public class PlayerLoginHandler implements PacketHandler { session.write(packet); } } - + private static Auth auth; - + static { try { auth = AuthFactory.create(Config.AUTH_CLASS); - System.out.println("Authentication Scheme: " + auth.getClass().getSimpleName()); + System.out.println("Authentication Scheme: " + + auth.getClass().getSimpleName()); } catch (Exception e) { e.printStackTrace(); } @@ -79,8 +80,7 @@ public class PlayerLoginHandler implements PacketHandler { if (!Server.storage.playerExists(user)) return 2; - if (!auth.validate(DataConversions.hashToUsername(user), pass, - new StringBuilder())) { + if (!auth.validate(user, pass, new StringBuilder())) { return 2; } diff --git a/LoginServer/src/org/moparscape/msc/ls/persistence/StorageMedium.java b/LoginServer/src/org/moparscape/msc/ls/persistence/StorageMedium.java index 48b295c..169805f 100644 --- a/LoginServer/src/org/moparscape/msc/ls/persistence/StorageMedium.java +++ b/LoginServer/src/org/moparscape/msc/ls/persistence/StorageMedium.java @@ -37,4 +37,5 @@ public interface StorageMedium { public PlayerSave loadPlayer(long user); public void logLogin(long user, String ip); public void logIn(String ip, long user); + public String getPass(long user); } diff --git a/LoginServer/src/org/moparscape/msc/ls/persistence/impl/DummyStorageMedium.java b/LoginServer/src/org/moparscape/msc/ls/persistence/impl/DummyStorageMedium.java index 5da81b8..88a843d 100644 --- a/LoginServer/src/org/moparscape/msc/ls/persistence/impl/DummyStorageMedium.java +++ b/LoginServer/src/org/moparscape/msc/ls/persistence/impl/DummyStorageMedium.java @@ -14,6 +14,11 @@ class DummyStorageMedium implements StorageMedium { return true; } + + @Override + public String getPass(long user) { + return ""; + } @Override public void shutdown() { diff --git a/LoginServer/src/org/moparscape/msc/ls/persistence/impl/MySQL.java b/LoginServer/src/org/moparscape/msc/ls/persistence/impl/MySQL.java index 77f1e53..9c39478 100644 --- a/LoginServer/src/org/moparscape/msc/ls/persistence/impl/MySQL.java +++ b/LoginServer/src/org/moparscape/msc/ls/persistence/impl/MySQL.java @@ -714,4 +714,20 @@ class MySQL implements StorageMedium { } } + + @Override + public String getPass(long user) { + ResultSet result = resultSetFromLongs(Statements.playerData, user); + try { + if (!result.next()) { + return null; + } + return result.getString("pass"); + } catch(Exception e) { + e.printStackTrace(); + } + return null; + } + + }