From 81efcd6c73dddbb5219f8a898639bdb0ea34a593 Mon Sep 17 00:00:00 2001 From: Gideon le Grange Date: Thu, 8 Nov 2018 06:30:58 +0200 Subject: [PATCH] Implemented support for new login method used from 6.43 --- .../legrange/mikrotik/impl/ApiConnectionImpl.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java b/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java index 4fde0ea..d7ef24f 100644 --- a/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java +++ b/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java @@ -56,12 +56,14 @@ public final class ApiConnectionImpl extends ApiConnection { throw new ApiConnectionException("API username cannot be empty"); } List> list = execute("/login name=" + username + " password=" + password); - Map res = list.get(0); - 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); + if (!list.isEmpty()) { + Map res = list.get(0); + 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); + } } }