From d4d12b44467f47e1360c7cdab4cc0eb26a22c35f Mon Sep 17 00:00:00 2001 From: Christian Schweizer Date: Tue, 30 Apr 2024 10:14:38 +0200 Subject: [PATCH] Use OpenOlat endpoint to authenticate --- .../lms/impl/olat/OlatLmsAPITemplate.java | 2 +- .../lms/impl/olat/OlatLmsRestTemplate.java | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/olat/OlatLmsAPITemplate.java b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/olat/OlatLmsAPITemplate.java index 589f6763..2307653d 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/olat/OlatLmsAPITemplate.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/olat/OlatLmsAPITemplate.java @@ -473,7 +473,7 @@ public class OlatLmsAPITemplate extends AbstractCachedCourseAccess implements Lm .getOrThrow(); final ClientCredentialsResourceDetails details = new ClientCredentialsResourceDetails(); - details.setAccessTokenUri(lmsSetup.lmsApiUrl + "/restapi/auth/"); + details.setAccessTokenUri(lmsSetup.lmsApiUrl + "/restapi/auth/{username}?password={password}"); details.setClientId(plainClientId.toString()); details.setClientSecret(plainClientSecret.toString()); diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/olat/OlatLmsRestTemplate.java b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/olat/OlatLmsRestTemplate.java index 046c6f07..f2fd8601 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/olat/OlatLmsRestTemplate.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/lms/impl/olat/OlatLmsRestTemplate.java @@ -16,6 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; import org.springframework.http.HttpRequest; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -116,14 +117,14 @@ public class OlatLmsRestTemplate extends RestTemplate { // Authenticate with OLAT and store the received X-OLAT-TOKEN this.token = "authenticating"; final String authUrl = this.details.getAccessTokenUri(); - final Map credentials = new HashMap<>(); - credentials.put("username", this.details.getClientId()); - credentials.put("password", this.details.getClientSecret()); + final Map parameters = new HashMap<>(); + parameters.put("username", this.details.getClientId()); + parameters.put("password", this.details.getClientSecret()); final HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.set("content-type", "application/json"); - final HttpEntity> requestEntity = new HttpEntity<>(credentials, httpHeaders); + final HttpEntity> requestEntity = new HttpEntity<>(httpHeaders); try { - final ResponseEntity response = this.postForEntity(authUrl, requestEntity, String.class); + final ResponseEntity response = this.exchange(authUrl, HttpMethod.GET, requestEntity, String.class, parameters); final HttpHeaders responseHeaders = response.getHeaders(); if (log.isDebugEnabled()) {