From 1dadca2eae9fd7dd405b3520fbdfb6448a086837 Mon Sep 17 00:00:00 2001 From: anhefti Date: Tue, 16 Mar 2021 20:39:39 +0100 Subject: [PATCH 1/3] fixed minor bug institutional gui redirect --- .../gui/InstitutionalAuthenticationEntryPoint.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/ch/ethz/seb/sebserver/gui/InstitutionalAuthenticationEntryPoint.java b/src/main/java/ch/ethz/seb/sebserver/gui/InstitutionalAuthenticationEntryPoint.java index d497e66a..39586d96 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gui/InstitutionalAuthenticationEntryPoint.java +++ b/src/main/java/ch/ethz/seb/sebserver/gui/InstitutionalAuthenticationEntryPoint.java @@ -118,6 +118,11 @@ public final class InstitutionalAuthenticationEntryPoint implements Authenticati if (StringUtils.isNoneBlank(institutionalEndpoint) && log.isDebugEnabled()) { log.debug("No default gui entrypoint requested: {}", institutionalEndpoint); + } else { + request.getSession().setAttribute(INST_SUFFIX_ATTRIBUTE, null); + request.getSession().removeAttribute(API.PARAM_LOGO_IMAGE); + forwardToEntryPoint(request, response, this.guiEntryPoint, false); + return; } try { @@ -198,6 +203,9 @@ public final class InstitutionalAuthenticationEntryPoint implements Authenticati public static String extractInstitutionalEndpoint(final HttpServletRequest request) { final String requestURI = request.getRequestURI(); + if (StringUtils.isBlank(requestURI) || requestURI.equals(Constants.SLASH.toString())) { + return null; + } if (log.isDebugEnabled()) { log.debug("Trying to verify institution from requested entrypoint url: {}", requestURI); From 40b0426129ac64b866d9e38980cbf5b48084de61 Mon Sep 17 00:00:00 2001 From: anhefti Date: Wed, 17 Mar 2021 09:08:17 +0100 Subject: [PATCH 2/3] better logging for moodle access --- .../moodle/MoodleRestTemplateFactory.java | 55 +++++++++++++------ 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/moodle/MoodleRestTemplateFactory.java b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/moodle/MoodleRestTemplateFactory.java index 605bc37b..ca878b2f 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/moodle/MoodleRestTemplateFactory.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/moodle/MoodleRestTemplateFactory.java @@ -336,27 +336,48 @@ class MoodleRestTemplateFactory { private void requestAccessToken() { - final ResponseEntity response = super.exchange( - this.serverURL + this.tokenPath, - HttpMethod.GET, - this.tokenReqEntity, - String.class, - this.tokenReqURIVars); - - if (response.getStatusCode() != HttpStatus.OK) { - throw new RuntimeException("Failed to gain access token for LMS (Moodle): lmsSetup: " + - MoodleRestTemplateFactory.this.lmsSetup + " response: " + response.getBody()); - } - try { - final MoodleToken moodleToken = MoodleRestTemplateFactory.this.jsonMapper.readValue( - response.getBody(), - MoodleToken.class); + final ResponseEntity response = super.exchange( + this.serverURL + this.tokenPath, + HttpMethod.GET, + this.tokenReqEntity, + String.class, + this.tokenReqURIVars); + + if (response.getStatusCode() != HttpStatus.OK) { + log.error("Failed to gain access token for LMS (Moodle): lmsSetup: {} response: {} : {}", + MoodleRestTemplateFactory.this.lmsSetup, + response.getStatusCode(), + response.getBody()); + throw new RuntimeException("Failed to gain access token for LMS (Moodle): lmsSetup: " + + MoodleRestTemplateFactory.this.lmsSetup + " response: " + response.getBody()); + } + + try { + final MoodleToken moodleToken = MoodleRestTemplateFactory.this.jsonMapper.readValue( + response.getBody(), + MoodleToken.class); + + if (moodleToken == null || moodleToken.token == null) { + throw new RuntimeException("Access Token request with 200 but no or invalid token body"); + } + + this.accessToken = moodleToken.token; + } catch (final Exception e) { + log.error("Failed to gain access token for LMS (Moodle): lmsSetup: {} response: {} : {}", + MoodleRestTemplateFactory.this.lmsSetup, + response.getStatusCode(), + response.getBody()); + throw new RuntimeException("Failed to gain access token for LMS (Moodle): lmsSetup: " + + MoodleRestTemplateFactory.this.lmsSetup + " response: " + response.getBody(), e); + } - this.accessToken = moodleToken.token; } catch (final Exception e) { + log.error("Failed to gain access token for LMS (Moodle): lmsSetup: {} :", + MoodleRestTemplateFactory.this.lmsSetup, + e); throw new RuntimeException("Failed to gain access token for LMS (Moodle): lmsSetup: " + - MoodleRestTemplateFactory.this.lmsSetup + " response: " + response.getBody(), e); + MoodleRestTemplateFactory.this.lmsSetup + " cause: " + e.getMessage()); } } From 2bc990195ea9ebabee6f2ff177eac050b80520e6 Mon Sep 17 00:00:00 2001 From: anhefti Date: Wed, 17 Mar 2021 09:31:01 +0100 Subject: [PATCH 3/3] more logging for Moodle setup --- .../lms/impl/moodle/MoodleRestTemplateFactory.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/moodle/MoodleRestTemplateFactory.java b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/moodle/MoodleRestTemplateFactory.java index ca878b2f..522452d9 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/moodle/MoodleRestTemplateFactory.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/moodle/MoodleRestTemplateFactory.java @@ -130,7 +130,8 @@ class MoodleRestTemplateFactory { if (result.hasError()) { log.warn("Failed to get access token for LMS: {}({})", this.lmsSetup.name, - this.lmsSetup.id); + this.lmsSetup.id, + result.getError()); } return result; }) @@ -360,6 +361,9 @@ class MoodleRestTemplateFactory { if (moodleToken == null || moodleToken.token == null) { throw new RuntimeException("Access Token request with 200 but no or invalid token body"); + } else { + log.info("Successfully get access token from Moodle: {}", + MoodleRestTemplateFactory.this.lmsSetup); } this.accessToken = moodleToken.token;