From afad1e6d30d66471f29cb32b617bc8ccfbb5e758 Mon Sep 17 00:00:00 2001 From: Gideon le Grange Date: Thu, 8 Nov 2018 06:27:35 +0200 Subject: [PATCH] Implemented support for new login method used from 6.43 --- .gitignore | 3 +++ .../me/legrange/mikrotik/impl/ApiConnectionImpl.java | 12 +++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index dee2255..d41bfa9 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,6 @@ nbactions.xml # Maven pom.xml.versionsBackup + +# MacOS +.DS_Store diff --git a/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java b/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java index bc73b78..4fde0ea 100644 --- a/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java +++ b/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java @@ -55,12 +55,14 @@ public final class ApiConnectionImpl extends ApiConnection { if (username.trim().isEmpty()) { throw new ApiConnectionException("API username cannot be empty"); } - List> list = execute("/login"); + List> list = execute("/login name=" + username + " password=" + password); Map res = list.get(0); - String hash = res.get("ret"); - String chal = Util.hexStrToStr("00") + new String(password.toCharArray()) + Util.hexStrToStr(hash); - chal = Util.hashMD5(chal); - execute("/login name=" + username + " response=00" + chal); + if (res.containsKey("ret")) { + String hash = res.get("ret"); + String chal = Util.hexStrToStr("00") + new String(password.toCharArray()) + Util.hexStrToStr(hash); + chal = Util.hashMD5(chal); + execute("/login name=" + username + " response=00" + chal); + } } @Override