Merge pull request #60 from GideonLeGrange/login-change

Updated login code to support RouterOS 6.43+
This commit is contained in:
Gideon le Grange 2018-11-08 06:35:57 +02:00 committed by GitHub
commit 8cba90814f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 6 deletions

3
.gitignore vendored
View File

@ -22,3 +22,6 @@ nbactions.xml
# Maven # Maven
pom.xml.versionsBackup pom.xml.versionsBackup
# MacOS
.DS_Store

View File

@ -55,13 +55,17 @@ public final class ApiConnectionImpl extends ApiConnection {
if (username.trim().isEmpty()) { if (username.trim().isEmpty()) {
throw new ApiConnectionException("API username cannot be empty"); throw new ApiConnectionException("API username cannot be empty");
} }
List<Map<String, String>> list = execute("/login"); List<Map<String, String>> list = execute("/login name=" + username + " password=" + password);
if (!list.isEmpty()) {
Map<String, String> res = list.get(0); Map<String, String> res = list.get(0);
if (res.containsKey("ret")) {
String hash = res.get("ret"); String hash = res.get("ret");
String chal = Util.hexStrToStr("00") + new String(password.toCharArray()) + Util.hexStrToStr(hash); String chal = Util.hexStrToStr("00") + new String(password.toCharArray()) + Util.hexStrToStr(hash);
chal = Util.hashMD5(chal); chal = Util.hashMD5(chal);
execute("/login name=" + username + " response=00" + chal); execute("/login name=" + username + " response=00" + chal);
} }
}
}
@Override @Override
public List<Map<String, String>> execute(String cmd) throws MikrotikApiException { public List<Map<String, String>> execute(String cmd) throws MikrotikApiException {