Merge remote-tracking branch 'origin/kvv_rename'

# Conflicts:
#	app/build.gradle
#	app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAnnouncements.java
#	app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAssignments.java
#	app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java
#	app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesGradebook.java
#	app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesList.java
#	app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesResources.java
#	app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVLogin.java
This commit is contained in:
Sebastian Seedorf
2019-10-15 14:42:23 +02:00
8 changed files with 20 additions and 12 deletions

View File

@@ -0,0 +1,5 @@
package de.sebse.fuplanner.services.kvv;
public class Constants {
public static final String KVV_SERVER_URL = "https://mycampus.imp.fu-berlin.de/";
}

View File

@@ -39,7 +39,7 @@ public class ModulesAnnouncements extends PartModules<ArrayList<Announcement>> {
errorCallback.onError(new NetworkError(101204, 500, "Currently running in offline mode!")); errorCallback.onError(new NetworkError(101204, 500, "Currently running in offline mode!"));
return; return;
} }
super.get(String.format("https://mycampus.imp.fu-berlin.de/direct/announcement/site/%s.json?n=999999&d=999999999&_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { super.get(String.format(Constants.KVV_SERVER_URL+"direct/announcement/site/%s.json?n=999999&d=999999999&_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> {
String body = response.getParsed(); String body = response.getParsed();
if (body == null) { if (body == null) {
errorCallback.onError(new NetworkError(101201, 403, "No announcements retrieved!")); errorCallback.onError(new NetworkError(101201, 403, "No announcements retrieved!"));

View File

@@ -39,7 +39,7 @@ public class ModulesAssignments extends PartModules<AssignmentList> {
errorCallback.onError(new NetworkError(101304, 500, "Currently running in offline mode!")); errorCallback.onError(new NetworkError(101304, 500, "Currently running in offline mode!"));
return; return;
} }
get(String.format("https://mycampus.imp.fu-berlin.de/direct/assignment/site/%s.json?_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { get(String.format(Constants.KVV_SERVER_URL+"direct/assignment/site/%s.json?_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> {
String body = response.getParsed(); String body = response.getParsed();
if (body == null) { if (body == null) {
errorCallback.onError(new NetworkError(101301, 403, "No assignments retrieved!")); errorCallback.onError(new NetworkError(101301, 403, "No assignments retrieved!"));

View File

@@ -47,7 +47,7 @@ public class ModulesEvents extends PartModules<EventList> {
errorCallback.onError(new NetworkError(101404, 500, "Currently running in offline mode!")); errorCallback.onError(new NetworkError(101404, 500, "Currently running in offline mode!"));
return; return;
} }
get(String.format("https://mycampus.imp.fu-berlin.de/direct/calendar/site/%s.json?detailed=true&_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { get(String.format(Constants.KVV_SERVER_URL+"direct/calendar/site/%s.json?detailed=true&_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> {
String body = response.getParsed(); String body = response.getParsed();
if (body == null) { if (body == null) {
errorCallback.onError(new NetworkError(101401, 403, "No events retrieved!")); errorCallback.onError(new NetworkError(101401, 403, "No events retrieved!"));

View File

@@ -38,7 +38,7 @@ public class ModulesGradebook extends PartModules<ArrayList<Grade>> {
errorCallback.onError(new NetworkError(101504, 500, "Currently running in offline mode!")); errorCallback.onError(new NetworkError(101504, 500, "Currently running in offline mode!"));
return; return;
} }
super.get(String.format("https://mycampus.imp.fu-berlin.de/direct/gradebook/site/%s.json", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { super.get(String.format(Constants.KVV_SERVER_URL+"direct/gradebook/site/%s.json", ID), mLogin.getLoginTokenKVV().getCookies(), response -> {
String body = response.getParsed(); String body = response.getParsed();
if (body == null) { if (body == null) {
errorCallback.onError(new NetworkError(101501, 403, "No gradebook retrieved!")); errorCallback.onError(new NetworkError(101501, 403, "No gradebook retrieved!"));

View File

@@ -196,7 +196,7 @@ public class ModulesList extends HTTPService {
callback.onResponse(modules); callback.onResponse(modules);
return; return;
} }
get("https://mycampus.imp.fu-berlin.de/direct/membership.json?_validateSession=", mLogin.getLoginTokenKVV().getCookies(), response -> { get(Constants.KVV_SERVER_URL+"direct/membership.json?_validateSession=", mLogin.getLoginTokenKVV().getCookies(), response -> {
String body = response.getParsed(); String body = response.getParsed();
if (body == null) { if (body == null) {
errorCallback.onError(new NetworkError(101111, 403, "No membership list retrieved!")); errorCallback.onError(new NetworkError(101111, 403, "No membership list retrieved!"));
@@ -228,7 +228,7 @@ public class ModulesList extends HTTPService {
if (--latch[0] == 0) successCallback.onResponse(modules); if (--latch[0] == 0) successCallback.onResponse(modules);
continue; continue;
} }
get(String.format("https://mycampus.imp.fu-berlin.de/direct/site/%s.json?_validateSession=", courseId), mLogin.getLoginTokenKVV().getCookies(), response1 -> { get(String.format(Constants.KVV_SERVER_URL+"direct/site/%s.json?_validateSession=", courseId), mLogin.getLoginTokenKVV().getCookies(), response1 -> {
String body1 = response1.getParsed(); String body1 = response1.getParsed();
if (body1 == null) { if (body1 == null) {
errorCallback.onError(new NetworkError(101113, 403, "No site retrieved!")); errorCallback.onError(new NetworkError(101113, 403, "No site retrieved!"));

View File

@@ -47,7 +47,7 @@ public class ModulesResources extends PartModules<ArrayList<Resource>> {
errorCallback.onError(new NetworkError(101604, 500, "Currently running in offline mode!")); errorCallback.onError(new NetworkError(101604, 500, "Currently running in offline mode!"));
return; return;
} }
get(String.format("https://mycampus.imp.fu-berlin.de/direct/content/site/%s.json?_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { get(String.format(Constants.KVV_SERVER_URL+"direct/content/site/%s.json?_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> {
String body = response.getParsed(); String body = response.getParsed();
if (body == null) { if (body == null) {
errorCallback.onError(new NetworkError(101601, 403, "No resources retrieved!")); errorCallback.onError(new NetworkError(101601, 403, "No resources retrieved!"));

View File

@@ -10,6 +10,7 @@ import java.util.HashMap;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import de.sebse.fuplanner.services.kvv.Constants;
import de.sebse.fuplanner.services.kvv.types.LoginTokenKVV; import de.sebse.fuplanner.services.kvv.types.LoginTokenKVV;
import de.sebse.fuplanner.tools.network.HTTPService; import de.sebse.fuplanner.tools.network.HTTPService;
import de.sebse.fuplanner.tools.network.NetworkCallback; import de.sebse.fuplanner.tools.network.NetworkCallback;
@@ -22,6 +23,8 @@ public class KVVLogin extends HTTPService {
private long lastSync; private long lastSync;
private static final long MAX_CACHE_TIME = 1000 * 60; // 1 minute private static final long MAX_CACHE_TIME = 1000 * 60; // 1 minute
public static final String KVV_SERVER_URL = Constants.KVV_SERVER_URL;
public KVVLogin(Context context, FULogin fuLogin) { public KVVLogin(Context context, FULogin fuLogin) {
super(context); super(context);
this.mFULogin = fuLogin; this.mFULogin = fuLogin;
@@ -33,7 +36,7 @@ public class KVVLogin extends HTTPService {
callback.onResponse(token); callback.onResponse(token);
return; return;
} }
get(String.format("https://mycampus.imp.fu-berlin.de/direct/profile/%s.json", token.getUsername()), token.getCookies(), response -> { get(String.format(KVV_SERVER_URL+"direct/profile/%s.json", token.getUsername()), token.getCookies(), response -> {
String body = response.getParsed(); String body = response.getParsed();
if (body == null) { if (body == null) {
errorCallback.onError(new NetworkError(100172, 403, "Testing login failed!")); errorCallback.onError(new NetworkError(100172, 403, "Testing login failed!"));
@@ -87,7 +90,7 @@ public class KVVLogin extends HTTPService {
} }
private void step0(String username, final NetworkCallback<Boolean> callback, final NetworkErrorCallback errorCallback) { private void step0(String username, final NetworkCallback<Boolean> callback, final NetworkErrorCallback errorCallback) {
get(String.format("https://mycampus.imp.fu-berlin.de/direct/profile/%s", username), null, result -> { get(String.format(KVV_SERVER_URL+"direct/profile/%s", username), null, result -> {
callback.onResponse(true); callback.onResponse(true);
}, error -> { }, error -> {
if (error.networkResponse.statusCode == 500) { if (error.networkResponse.statusCode == 500) {
@@ -103,7 +106,7 @@ public class KVVLogin extends HTTPService {
-> Location-Header: https://identity.fu-berlin.de/idp-fub/profile/SAML2/Redirect/SSO?SAMLResponse=[SAMLResponse]&RelayState=[RelayState] -> Location-Header: https://identity.fu-berlin.de/idp-fub/profile/SAML2/Redirect/SSO?SAMLResponse=[SAMLResponse]&RelayState=[RelayState]
*/ */
private void step1(final NetworkCallback<HashMap<String, String>> callback, final NetworkErrorCallback errorCallback) { private void step1(final NetworkCallback<HashMap<String, String>> callback, final NetworkErrorCallback errorCallback) {
get("https://mycampus.imp.fu-berlin.de/Shibboleth.sso/Login?entityID=https://identity.fu-berlin.de/idp-fub", null, response -> { get(KVV_SERVER_URL+"Shibboleth.sso/Login?entityID=https://identity.fu-berlin.de/idp-fub", null, response -> {
String location = response.getHeaders().get("Location"); String location = response.getHeaders().get("Location");
if (location==null) { if (location==null) {
errorCallback.onError(new NetworkError(100111, -1, "Error on getting SAML request!")); errorCallback.onError(new NetworkError(100111, -1, "Error on getting SAML request!"));
@@ -124,7 +127,7 @@ public class KVVLogin extends HTTPService {
private void step5(String SAMLResponse, final NetworkCallback<HashMap<String, String>> callback, final NetworkErrorCallback errorCallback) { private void step5(String SAMLResponse, final NetworkCallback<HashMap<String, String>> callback, final NetworkErrorCallback errorCallback) {
HashMap<String, String> body = new HashMap<>(); HashMap<String, String> body = new HashMap<>();
body.put("SAMLResponse", SAMLResponse); body.put("SAMLResponse", SAMLResponse);
post("https://mycampus.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST", null, body, response -> { post(KVV_SERVER_URL+"Shibboleth.sso/SAML2/POST", null, body, response -> {
String cookies = response.getHeaders().get("Set-Cookie"); String cookies = response.getHeaders().get("Set-Cookie");
if (cookies ==null) { if (cookies ==null) {
errorCallback.onError(new NetworkError(100151, -1, "Error on starting KVV session!")); errorCallback.onError(new NetworkError(100151, -1, "Error on starting KVV session!"));
@@ -154,7 +157,7 @@ public class KVVLogin extends HTTPService {
private void step6(String shibsessionKey, String shibsessionName, final NetworkCallback<HashMap<String, String>> callback, final NetworkErrorCallback errorCallback) { private void step6(String shibsessionKey, String shibsessionName, final NetworkCallback<HashMap<String, String>> callback, final NetworkErrorCallback errorCallback) {
HashMap<String, String> cookies = new HashMap<>(); HashMap<String, String> cookies = new HashMap<>();
cookies.put(shibsessionKey, shibsessionName); cookies.put(shibsessionKey, shibsessionName);
get("https://mycampus.imp.fu-berlin.de/sakai-login-tool/container", cookies, response -> { get(KVV_SERVER_URL+"sakai-login-tool/container", cookies, response -> {
String cookies1 = response.getHeaders().get("Set-Cookie"); String cookies1 = response.getHeaders().get("Set-Cookie");
if (cookies1 ==null) { if (cookies1 ==null) {
errorCallback.onError(new NetworkError(100161, -1, "Cannot finish login process!")); errorCallback.onError(new NetworkError(100161, -1, "Cannot finish login process!"));