From 6d09d8e885540843330a4b5c81ba187a12306de3 Mon Sep 17 00:00:00 2001 From: Caesar2011 Date: Mon, 22 Oct 2018 16:58:49 +0200 Subject: [PATCH] getParsed NullPointerException / Version 7 --- .../java/de/sebse/fuplanner/services/KVV/KVVLogin.java | 10 ++++++++-- .../de/sebse/fuplanner/services/KVV/TestLogin.java | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVLogin.java b/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVLogin.java index bd8c32f..03604a7 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVLogin.java +++ b/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVLogin.java @@ -215,10 +215,16 @@ class KVVLogin extends HTTPService { cookies.put("ROUTEID", ROUTEID); cookies.put("_idp_session", _idp_session); get("https://identity.fu-berlin.de/idp-fub/profile/SAML2/Redirect/SSO", cookies, response -> { + String body = response.getParsed(); + if (body == null) { + errorCallback.onError(new NetworkError(100143, -1, "Error on getting SAML response!")); + return; + } + HashMap object = new HashMap<>(); Pattern pattern = Pattern.compile("ss:mem:([0-9a-f]+)"); - Matcher matcher = pattern.matcher(response.getParsed()); + Matcher matcher = pattern.matcher(body); if (!matcher.find()) { errorCallback.onError(new NetworkError(100142, -1, "Error on getting SAML response!")); return; @@ -226,7 +232,7 @@ class KVVLogin extends HTTPService { object.put("RelayState", "ss:mem:"+matcher.group(1)); pattern = Pattern.compile("name=\"SAMLResponse\" value=\"([0-9a-zA-Z+]+=*)"); - matcher = pattern.matcher(response.getParsed()); + matcher = pattern.matcher(body); if (!matcher.find()) { errorCallback.onError(new NetworkError(100141, -1, "Error on getting SAML response!")); return; diff --git a/app/src/main/java/de/sebse/fuplanner/services/KVV/TestLogin.java b/app/src/main/java/de/sebse/fuplanner/services/KVV/TestLogin.java index 473f0cb..48c9449 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/KVV/TestLogin.java +++ b/app/src/main/java/de/sebse/fuplanner/services/KVV/TestLogin.java @@ -20,6 +20,10 @@ final class TestLogin extends HTTPService { static void testLogin(Context context, LoginToken loginToken, NetworkCallback callback, NetworkErrorCallback errorCallback) { new TestLogin(context).get(String.format("https://kvv.imp.fu-berlin.de/direct/profile/%s.json", loginToken.getUsername()), loginToken.getCookies(), response -> { String body = response.getParsed(); + if (body == null) { + errorCallback.onError(new NetworkError(100202, 403, "Testing login failed!")); + return; + } try { JSONObject json = new JSONObject(body); String displayName = json.getString("displayName");