diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/Login.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/Login.java index 8711582..3e1efb1 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/Login.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/Login.java @@ -16,6 +16,7 @@ import de.sebse.fuplanner.services.kvv.types.LoginTokenKVV; import de.sebse.fuplanner.tools.CustomAccountManager; import de.sebse.fuplanner.tools.NetworkCallbackCollector; import de.sebse.fuplanner.tools.Preferences; +import de.sebse.fuplanner.tools.logging.Logger; import de.sebse.fuplanner.tools.network.HTTPService; import de.sebse.fuplanner.tools.network.NetworkCallback; import de.sebse.fuplanner.tools.network.NetworkError; diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAnnouncements.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAnnouncements.java index 3e54973..03faa0b 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAnnouncements.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAnnouncements.java @@ -39,7 +39,7 @@ public class ModulesAnnouncements extends PartModules> { errorCallback.onError(new NetworkError(101204, 500, "Currently running in offline mode!")); return; } - super.get(String.format("https://kvv.imp.fu-berlin.de/direct/announcement/site/%s.json?n=999999&d=999999999&_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { + 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 -> { String body = response.getParsed(); if (body == null) { errorCallback.onError(new NetworkError(101201, 403, "No announcements retrieved!")); diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAssignments.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAssignments.java index 6a9101a..9a7879f 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAssignments.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesAssignments.java @@ -39,7 +39,7 @@ public class ModulesAssignments extends PartModules { errorCallback.onError(new NetworkError(101304, 500, "Currently running in offline mode!")); return; } - get(String.format("https://kvv.imp.fu-berlin.de/direct/assignment/site/%s.json?_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { + get(String.format("https://mycampus.imp.fu-berlin.de/direct/assignment/site/%s.json?_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { String body = response.getParsed(); if (body == null) { errorCallback.onError(new NetworkError(101301, 403, "No assignments retrieved!")); diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java index fc360a7..840026c 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java @@ -47,7 +47,7 @@ public class ModulesEvents extends PartModules { errorCallback.onError(new NetworkError(101404, 500, "Currently running in offline mode!")); return; } - get(String.format("https://kvv.imp.fu-berlin.de/direct/calendar/site/%s.json?detailed=true&_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { + get(String.format("https://mycampus.imp.fu-berlin.de/direct/calendar/site/%s.json?detailed=true&_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { String body = response.getParsed(); if (body == null) { errorCallback.onError(new NetworkError(101401, 403, "No events retrieved!")); diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesGradebook.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesGradebook.java index 0eac706..895e209 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesGradebook.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesGradebook.java @@ -38,7 +38,7 @@ public class ModulesGradebook extends PartModules> { errorCallback.onError(new NetworkError(101504, 500, "Currently running in offline mode!")); return; } - super.get(String.format("https://kvv.imp.fu-berlin.de/direct/gradebook/site/%s.json", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { + super.get(String.format("https://mycampus.imp.fu-berlin.de/direct/gradebook/site/%s.json", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { String body = response.getParsed(); if (body == null) { errorCallback.onError(new NetworkError(101501, 403, "No gradebook retrieved!")); diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesList.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesList.java index 8a91d31..7d19931 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesList.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesList.java @@ -196,7 +196,7 @@ public class ModulesList extends HTTPService { callback.onResponse(modules); return; } - get("https://kvv.imp.fu-berlin.de/direct/membership.json?_validateSession=", mLogin.getLoginTokenKVV().getCookies(), response -> { + get("https://mycampus.imp.fu-berlin.de/direct/membership.json?_validateSession=", mLogin.getLoginTokenKVV().getCookies(), response -> { String body = response.getParsed(); if (body == null) { 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); continue; } - get(String.format("https://kvv.imp.fu-berlin.de/direct/site/%s.json?_validateSession=", courseId), mLogin.getLoginTokenKVV().getCookies(), response1 -> { + get(String.format("https://mycampus.imp.fu-berlin.de/direct/site/%s.json?_validateSession=", courseId), mLogin.getLoginTokenKVV().getCookies(), response1 -> { String body1 = response1.getParsed(); if (body1 == null) { errorCallback.onError(new NetworkError(101113, 403, "No site retrieved!")); diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesResources.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesResources.java index 5e0ca60..ef855d7 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesResources.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesResources.java @@ -47,7 +47,7 @@ public class ModulesResources extends PartModules> { errorCallback.onError(new NetworkError(101604, 500, "Currently running in offline mode!")); return; } - get(String.format("https://kvv.imp.fu-berlin.de/direct/content/site/%s.json?_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { + get(String.format("https://mycampus.imp.fu-berlin.de/direct/content/site/%s.json?_validateSession=", ID), mLogin.getLoginTokenKVV().getCookies(), response -> { String body = response.getParsed(); if (body == null) { errorCallback.onError(new NetworkError(101601, 403, "No resources retrieved!")); diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVLogin.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVLogin.java index ac9d7c5..5aa1d51 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVLogin.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVLogin.java @@ -33,7 +33,7 @@ public class KVVLogin extends HTTPService { callback.onResponse(token); return; } - get(String.format("https://kvv.imp.fu-berlin.de/direct/profile/%s.json", token.getUsername()), token.getCookies(), response -> { + get(String.format("https://mycampus.imp.fu-berlin.de/direct/profile/%s.json", token.getUsername()), token.getCookies(), response -> { String body = response.getParsed(); if (body == null) { errorCallback.onError(new NetworkError(100172, 403, "Testing login failed!")); @@ -87,7 +87,7 @@ public class KVVLogin extends HTTPService { } private void step0(String username, final NetworkCallback callback, final NetworkErrorCallback errorCallback) { - get(String.format("https://kvv.imp.fu-berlin.de/direct/profile/%s", username), null, result -> { + get(String.format("https://mycampus.imp.fu-berlin.de/direct/profile/%s", username), null, result -> { callback.onResponse(true); }, error -> { if (error.networkResponse.statusCode == 500) { @@ -99,11 +99,11 @@ public class KVVLogin extends HTTPService { } /* - 1= GET https://kvv.imp.fu-berlin.de/Shibboleth.sso/Login?entityID=https://identity.fu-berlin.de/idp-fub + 1= GET https://mycampus.imp.fu-berlin.de/Shibboleth.sso/Login?entityID=https://identity.fu-berlin.de/idp-fub -> Location-Header: https://identity.fu-berlin.de/idp-fub/profile/SAML2/Redirect/SSO?SAMLResponse=[SAMLResponse]&RelayState=[RelayState] */ private void step1(final NetworkCallback> callback, final NetworkErrorCallback errorCallback) { - get("https://kvv.imp.fu-berlin.de/Shibboleth.sso/Login?entityID=https://identity.fu-berlin.de/idp-fub", null, response -> { + get("https://mycampus.imp.fu-berlin.de/Shibboleth.sso/Login?entityID=https://identity.fu-berlin.de/idp-fub", null, response -> { String location = response.getHeaders().get("Location"); if (location==null) { errorCallback.onError(new NetworkError(100111, -1, "Error on getting SAML request!")); @@ -116,7 +116,7 @@ public class KVVLogin extends HTTPService { } /* - 5= POST https://kvv.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST + 5= POST https://mycampus.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST + Body: SAMLResponse=[SAML-RESPONSE] + Header: Content-Type: application/x-www-form-urlencoded -> Set-Cookie: _shibsession_[SESS-NR]: [SESS-VALUE] @@ -124,7 +124,7 @@ public class KVVLogin extends HTTPService { private void step5(String SAMLResponse, final NetworkCallback> callback, final NetworkErrorCallback errorCallback) { HashMap body = new HashMap<>(); body.put("SAMLResponse", SAMLResponse); - post("https://kvv.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST", null, body, response -> { + post("https://mycampus.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST", null, body, response -> { String cookies = response.getHeaders().get("Set-Cookie"); if (cookies ==null) { errorCallback.onError(new NetworkError(100151, -1, "Error on starting KVV session!")); @@ -147,14 +147,14 @@ public class KVVLogin extends HTTPService { /* - 6= https://kvv.imp.fu-berlin.de/sakai-login-tool/container + 6= https://mycampus.imp.fu-berlin.de/sakai-login-tool/container + Cookie: _shibsession_[SESS-NR]: [SESS-VALUE] -> Set-Cookie: JSESSIONID: [JSESSION-KVV] */ private void step6(String shibsessionKey, String shibsessionName, final NetworkCallback> callback, final NetworkErrorCallback errorCallback) { HashMap cookies = new HashMap<>(); cookies.put(shibsessionKey, shibsessionName); - get("https://kvv.imp.fu-berlin.de/sakai-login-tool/container", cookies, response -> { + get("https://mycampus.imp.fu-berlin.de/sakai-login-tool/container", cookies, response -> { String cookies1 = response.getHeaders().get("Set-Cookie"); if (cookies1 ==null) { errorCallback.onError(new NetworkError(100161, -1, "Cannot finish login process!")); diff --git a/build.gradle b/build.gradle index 72a43de..127b789 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.3.0' + classpath 'com.android.tools.build:gradle:3.5.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/datenschutz.md b/datenschutz.md index 8ae9f83..306a73e 100644 --- a/datenschutz.md +++ b/datenschutz.md @@ -1,6 +1,6 @@ # Datenschutzrichtlinie -Im Folgenden klären wir über die Datenverarbeitung der Daten innerhalb der Android-App FUPlanner (im Folgenden "App" genannt) nach der Rechtsgrundlage von [Art. 6 der DSGVO](https://dejure.org/gesetze/DSGVO/6.html) auf. Wir informieren wie die Daten innerhalb der App gespeichert werden und welche Informationen mit den Servern des [KVV](https://kvv.imp.fu-berlin.de/), der [OpenMensa](https://openmensa.org/) und [Googles Smart Lock](https://get.google.com/smartlock/) (optional, siehe unten) ausgetauscht werden. +Im Folgenden klären wir über die Datenverarbeitung der Daten innerhalb der Android-App FUPlanner (im Folgenden "App" genannt) nach der Rechtsgrundlage von [Art. 6 der DSGVO](https://dejure.org/gesetze/DSGVO/6.html) auf. Wir informieren wie die Daten innerhalb der App gespeichert werden und welche Informationen mit den Servern des [KVV](https://mycampus.imp.fu-berlin.de/), der [OpenMensa](https://openmensa.org/) und [Googles Smart Lock](https://get.google.com/smartlock/) (optional, siehe unten) ausgetauscht werden. ## Rechte des Nutzers diff --git a/docs/blackboard.txt b/docs/blackboard.txt index cabaa12..b5ae9a0 100644 --- a/docs/blackboard.txt +++ b/docs/blackboard.txt @@ -16,7 +16,7 @@ https://lms.fu-berlin.de/learn/api/public/v1/users/_203980_1/courses https://lms.fu-berlin.de/learn/api/public/v1/courses/_122802_1 -The field "courseId" in Blackboard can be matched to "props/kvv_lvnumbers" in "http://kvv.imp.fu-berlin.de/direct/site/" +The field "courseId" in Blackboard can be matched to "props/kvv_lvnumbers" in "http://mycampus.imp.fu-berlin.de/direct/site/" - details + semester diff --git a/docs/kvvlogin.txt b/docs/kvvlogin.txt index f5703ac..a3518d2 100644 --- a/docs/kvvlogin.txt +++ b/docs/kvvlogin.txt @@ -3,11 +3,11 @@ KVV-Login ----------------------------------------------------------------------------- -GET https://kvv.imp.fu-berlin.de/portal/login +GET https://mycampus.imp.fu-berlin.de/portal/login -> JSESSIONID 5c10406f-588c-4c16-96e9-c80d115417de.tomcat1 -GET https://kvv.imp.fu-berlin.de/sakai-login-tool/container +GET https://mycampus.imp.fu-berlin.de/sakai-login-tool/container <- JSESSIONID -> (Location-Header) https://identity.fu-berlin.de/idp-fub/profile/SAML2/Redirect/SSO ?SAMLRequest=fZLLb.....Q8yre3X1IHwkJKE0Mnpy/V9TH4A @@ -42,7 +42,7 @@ GET https://identity.fu-berlin.de/idp-fub/profile/SAML2/Redirect/SSO -> (BODY) SAMLResponse PD94bWwgdmVyc2lvbj0...........wvc2FtbDJwOlJlc3BvbnNlPg== -POST https://kvv.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST +POST https://mycampus.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST <- RelayState 7ea01e29157b8bd906f7002176213b6db5e1f45ebb88716a9820d1a505f2c8bf <- SAMLResponse PD94bWwgdmVyc2lvbj0...........wvc2FtbDJwOlJlc3BvbnNlPg== <- JSESSIONID @@ -50,7 +50,7 @@ POST https://kvv.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST _b1912c5a03d733a80bd3fee772bf68d4 -GET https://kvv.imp.fu-berlin.de/ +GET https://mycampus.imp.fu-berlin.de/ <- JSESSIONID <- _shibsession_64656661756c7468747470733a2f2f6b76762e696d702e66752d6265726c696e2e64652f73686962626f6c657468 @@ -63,7 +63,7 @@ KVV-Login (Relogin) ----------------------------------------------------------------------------- -GET https://kvv.imp.fu-berlin.de/portal/login +GET https://mycampus.imp.fu-berlin.de/portal/login <- JSESSIONID <- _shibsession_64656661756c7468747470733a2f2f6b76762e696d702e66752d6265726c696e2e64652f73686962626f6c657468 <- pasystem_timezone_ok true diff --git a/docs/kvvlogin_new.txt b/docs/kvvlogin_new.txt index 36eea95..5600f4a 100644 --- a/docs/kvvlogin_new.txt +++ b/docs/kvvlogin_new.txt @@ -1,4 +1,4 @@ - 1= GET https://kvv.imp.fu-berlin.de/Shibboleth.sso/Login?entityID=https://identity.fu-berlin.de/idp-fub-qa + 1= GET https://mycampus.imp.fu-berlin.de/Shibboleth.sso/Login?entityID=https://identity.fu-berlin.de/idp-fub-qa -> Location-Header: https://identity.fu-berlin.de:9443/idp-fub-qa/profile/SAML2/Redirect/SSO?SAMLResponse=[SAMLResponse]&RelayState=[RelayState] 2= GET [Location-Header 1] -> Set-Cookie: JSESSIONID=[JSESSION-FU] @@ -11,10 +11,10 @@ + Cookie: JSESSIONID=[JSESSION-FU] -> Set-Cookie: shib_idp_session=[SHIB-IDP-SESSION] -> Body SAMLResponse-Input-value - 5= POST https://kvv.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST + 5= POST https://mycampus.imp.fu-berlin.de/Shibboleth.sso/SAML2/POST + Body: SAMLResponse=[SAML-RESPONSE] + Header: Content-Type: application/x-www-form-urlencoded -> Set-Cookie: _shibsession_[SESS-NR]: [SESS-VALUE] - 6= https://kvv.imp.fu-berlin.de/sakai-login-tool/container + 6= https://mycampus.imp.fu-berlin.de/sakai-login-tool/container + Cookie: _shibsession_[SESS-NR]: [SESS-VALUE] -> Set-Cookie: JSESSIONID: [JSESSION-KVV] \ No newline at end of file diff --git a/docs/module_details.txt b/docs/module_details.txt index 434522c..4a0fe14 100644 --- a/docs/module_details.txt +++ b/docs/module_details.txt @@ -3,7 +3,7 @@ Module-Details ----------------------------------------------------------------------------- -GET https://kvv.imp.fu-berlin.de/portal/login +GET https://mycampus.imp.fu-berlin.de/portal/login -> JSESSIONID 5c10406f-588c-4c16-96e9-c80d115417de.tomcat1 @@ -67,8 +67,8 @@ setMainFrameHeight( window.name ); } }, "loggedIn": true, - "portalPath": "https://kvv.imp.fu-berlin.de/portal", - "loggedOutUrl": "https://kvv.imp.fu-berlin.de/Shibboleth.sso/Logout", + "portalPath": "https://mycampus.imp.fu-berlin.de/portal", + "loggedOutUrl": "https://mycampus.imp.fu-berlin.de/Shibboleth.sso/Logout", "siteId": "~805a8f30-8103-4e87-94c2-f0b318f29af8", "siteTitle": "Home", "shortDescription" : "", @@ -175,7 +175,7 @@ setMainFrameHeight( window.name );
  • - + Home @@ -186,7 +186,7 @@ setMainFrameHeight( window.name );
  • - + Bildverarbeitung S18 @@ -196,7 +196,7 @@ setMainFrameHeight( window.name );
  • - + Künstliche Intelligen ... @@ -206,7 +206,7 @@ setMainFrameHeight( window.name );
  • - + Softwareprojekt: Inte ... @@ -216,7 +216,7 @@ setMainFrameHeight( window.name );
  • - + Seminar: Ausgewählte ... @@ -226,7 +226,7 @@ setMainFrameHeight( window.name );
  • - + Einführung in die Vis ... @@ -285,12 +285,12 @@ setMainFrameHeight( window.name );
  • @@ -307,7 +307,7 @@ setMainFrameHeight( window.name );
  • - + Preferences
  • @@ -347,7 +347,7 @@ setMainFrameHeight( window.name );