diff --git a/build.gradle b/build.gradle index a861c17934c..da6cea26a67 100644 --- a/build.gradle +++ b/build.gradle @@ -371,6 +371,7 @@ tasks.register("writeVersionToExamples") { include(name: 'examples/spring-otel/build.gradle') include(name: 'examples/spring-datadog/build.gradle') include(name: 'examples/spring-datadog-statsd/build.gradle') + include(name: 'examples/spring-dynatrace-oneagent/build.gradle') } } ant.replaceregexp(match: '.+', replace: "${globalVersion}", flags:'g', byline:true) { diff --git a/examples/spring-datadog-statsd/build.gradle b/examples/spring-datadog-statsd/build.gradle index 80f0476f854..d293d1c4f2e 100644 --- a/examples/spring-datadog-statsd/build.gradle +++ b/examples/spring-datadog-statsd/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.0.4' + id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.0' } diff --git a/examples/spring-datadog-statsd/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java b/examples/spring-datadog-statsd/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java index 477c9527a93..44147687a45 100644 --- a/examples/spring-datadog-statsd/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java +++ b/examples/spring-datadog-statsd/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java @@ -42,9 +42,9 @@ public String pop(Model model, HttpSession session) throws ExecutionException, I } @GetMapping("/cart") - public String cart(Model model, HttpSession session) { + public String cart(Model model, HttpSession session) throws ExecutionException, InterruptedException { final CompletableFuture cart = new CartRepository(apiRoot, session).meCart(); - model.addAttribute("cart", cart); + model.addAttribute("cart", cart.get()); return "mycart/index"; } diff --git a/examples/spring-datadog-statsd/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java b/examples/spring-datadog-statsd/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java deleted file mode 100644 index 471369f2b7f..00000000000 --- a/examples/spring-datadog-statsd/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.commercetools.sdk.examples.springmvc; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class SpringmvcApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/examples/spring-datadog/build.gradle b/examples/spring-datadog/build.gradle index 81e56385a22..57d964807be 100644 --- a/examples/spring-datadog/build.gradle +++ b/examples/spring-datadog/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.0.4' + id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.0' id "de.undercouch.download" version "5.3.0" } @@ -30,12 +30,11 @@ dependencies { implementation "com.commercetools.sdk:commercetools-apachehttp-client:${versions.commercetools}" implementation "com.commercetools.sdk:commercetools-monitoring-datadog:${versions.commercetools}" implementation 'javax.inject:javax.inject:1' - implementation 'com.dynatrace.metric.util:dynatrace-metric-utils-java:2.2.0' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation 'org.springframework.session:spring-session-core' - implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.0.4.RELEASE' + implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.2.RELEASE' implementation "com.datadoghq:datadog-api-client:2.20.0" testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' diff --git a/examples/spring-datadog/gradle/wrapper/gradle-wrapper.jar b/examples/spring-datadog/gradle/wrapper/gradle-wrapper.jar index d64cd491770..a4b76b9530d 100644 Binary files a/examples/spring-datadog/gradle/wrapper/gradle-wrapper.jar and b/examples/spring-datadog/gradle/wrapper/gradle-wrapper.jar differ diff --git a/examples/spring-datadog/gradle/wrapper/gradle-wrapper.properties b/examples/spring-datadog/gradle/wrapper/gradle-wrapper.properties index a80b22ce5cf..c1d5e018598 100644 --- a/examples/spring-datadog/gradle/wrapper/gradle-wrapper.properties +++ b/examples/spring-datadog/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/examples/spring-datadog/gradlew b/examples/spring-datadog/gradlew index 1aa94a42690..f5feea6d6b1 100755 --- a/examples/spring-datadog/gradlew +++ b/examples/spring-datadog/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/examples/spring-datadog/gradlew.bat b/examples/spring-datadog/gradlew.bat index 25da30dbdee..9d21a21834d 100644 --- a/examples/spring-datadog/gradlew.bat +++ b/examples/spring-datadog/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## diff --git a/examples/spring-datadog/src/main/java/com/commercetools/sdk/examples/springmvc/config/WebConfig.java b/examples/spring-datadog/src/main/java/com/commercetools/sdk/examples/springmvc/config/WebConfig.java index 3e8b805ca99..e85a8d8a4c9 100644 --- a/examples/spring-datadog/src/main/java/com/commercetools/sdk/examples/springmvc/config/WebConfig.java +++ b/examples/spring-datadog/src/main/java/com/commercetools/sdk/examples/springmvc/config/WebConfig.java @@ -12,7 +12,7 @@ import org.springframework.web.reactive.config.ResourceHandlerRegistry; import org.springframework.web.reactive.config.ViewResolverRegistry; import org.springframework.web.reactive.config.WebFluxConfigurer; -import org.thymeleaf.extras.springsecurity5.dialect.SpringSecurityDialect; +import org.thymeleaf.extras.springsecurity6.dialect.SpringSecurityDialect; import org.thymeleaf.spring6.ISpringWebFluxTemplateEngine; import org.thymeleaf.spring6.SpringWebFluxTemplateEngine; import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver; diff --git a/examples/spring-datadog/src/main/java/com/commercetools/sdk/examples/springmvc/service/CtpClientBeanService.java b/examples/spring-datadog/src/main/java/com/commercetools/sdk/examples/springmvc/service/CtpClientBeanService.java index 3c4f04aeed4..9681df0d5a0 100644 --- a/examples/spring-datadog/src/main/java/com/commercetools/sdk/examples/springmvc/service/CtpClientBeanService.java +++ b/examples/spring-datadog/src/main/java/com/commercetools/sdk/examples/springmvc/service/CtpClientBeanService.java @@ -42,7 +42,6 @@ public ApiHttpClient client() { } @Bean - @Autowired public ProjectApiRoot apiRoot(ApiHttpClient client) { final ProjectApiRoot build = ProjectApiRoot.fromClient(projectKey, client); diff --git a/examples/spring-datadog/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java b/examples/spring-datadog/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java deleted file mode 100644 index 471369f2b7f..00000000000 --- a/examples/spring-datadog/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.commercetools.sdk.examples.springmvc; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class SpringmvcApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/examples/spring-dynatrace-oneagent/build.gradle b/examples/spring-dynatrace-oneagent/build.gradle index 75ecdb580c1..76947dca6b1 100644 --- a/examples/spring-dynatrace-oneagent/build.gradle +++ b/examples/spring-dynatrace-oneagent/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.0.4' + id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.0' } @@ -20,7 +20,7 @@ repositories { ext { versions = [ - commercetools: "17.3.0", + commercetools: "17.20.0", ] } diff --git a/examples/spring-dynatrace-oneagent/gradle/wrapper/gradle-wrapper.properties b/examples/spring-dynatrace-oneagent/gradle/wrapper/gradle-wrapper.properties index 774fae87671..81aa1c0448a 100644 --- a/examples/spring-dynatrace-oneagent/gradle/wrapper/gradle-wrapper.properties +++ b/examples/spring-dynatrace-oneagent/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/spring-dynatrace-oneagent/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java b/examples/spring-dynatrace-oneagent/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java index 477c9527a93..44147687a45 100644 --- a/examples/spring-dynatrace-oneagent/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java +++ b/examples/spring-dynatrace-oneagent/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java @@ -42,9 +42,9 @@ public String pop(Model model, HttpSession session) throws ExecutionException, I } @GetMapping("/cart") - public String cart(Model model, HttpSession session) { + public String cart(Model model, HttpSession session) throws ExecutionException, InterruptedException { final CompletableFuture cart = new CartRepository(apiRoot, session).meCart(); - model.addAttribute("cart", cart); + model.addAttribute("cart", cart.get()); return "mycart/index"; } diff --git a/examples/spring-newrelic/build.gradle b/examples/spring-newrelic/build.gradle index c7664212baa..0ec07c81533 100644 --- a/examples/spring-newrelic/build.gradle +++ b/examples/spring-newrelic/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.0.4' + id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.0' id "de.undercouch.download" version "5.3.0" } @@ -22,7 +22,7 @@ repositories { ext { versions = [ commercetools: "17.20.0", - newrelic: "8.0.1" + newrelic: "8.16.0" ] } diff --git a/examples/spring-newrelic/gradle/wrapper/gradle-wrapper.properties b/examples/spring-newrelic/gradle/wrapper/gradle-wrapper.properties index 774fae87671..81aa1c0448a 100644 --- a/examples/spring-newrelic/gradle/wrapper/gradle-wrapper.properties +++ b/examples/spring-newrelic/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/spring-newrelic/src/main/java/com/commercetools/sdk/examples/springmvc/service/CtpClientBeanService.java b/examples/spring-newrelic/src/main/java/com/commercetools/sdk/examples/springmvc/service/CtpClientBeanService.java index 10d631ea8ef..f73cd58db5e 100644 --- a/examples/spring-newrelic/src/main/java/com/commercetools/sdk/examples/springmvc/service/CtpClientBeanService.java +++ b/examples/spring-newrelic/src/main/java/com/commercetools/sdk/examples/springmvc/service/CtpClientBeanService.java @@ -46,7 +46,6 @@ public ApiHttpClient client() { } @Bean - @RequestScope @Trace(dispatcher = true) public ProjectScopedApiRoot apiRoot(ApiHttpClient client) { ContextApiHttpClient contextClient = ContextApiHttpClient.of(client, new MDCContext(), false) diff --git a/examples/spring-newrelic/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java b/examples/spring-newrelic/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java index fca6fa394c4..51433bc0752 100644 --- a/examples/spring-newrelic/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java +++ b/examples/spring-newrelic/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java @@ -45,10 +45,10 @@ public String pop(Model model, HttpSession session) throws ExecutionException, I } @GetMapping("/cart") - public String cart(Model model, HttpSession session) { + public String cart(Model model, HttpSession session) throws ExecutionException, InterruptedException { final CompletableFuture cart = new CartRepository(apiRoot, session).meCart(); - model.addAttribute("cart", cart); + model.addAttribute("cart", cart.get()); return "mycart/index"; } diff --git a/examples/spring-newrelic/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java b/examples/spring-newrelic/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java deleted file mode 100644 index 471369f2b7f..00000000000 --- a/examples/spring-newrelic/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.commercetools.sdk.examples.springmvc; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class SpringmvcApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/examples/spring-otel/build.gradle b/examples/spring-otel/build.gradle index 0bc9c39c027..792bebcf6b5 100644 --- a/examples/spring-otel/build.gradle +++ b/examples/spring-otel/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.0.4' + id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.0' id "de.undercouch.download" version "5.3.0" } diff --git a/examples/spring-otel/gradle/wrapper/gradle-wrapper.properties b/examples/spring-otel/gradle/wrapper/gradle-wrapper.properties index 774fae87671..81aa1c0448a 100644 --- a/examples/spring-otel/gradle/wrapper/gradle-wrapper.properties +++ b/examples/spring-otel/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/spring-otel/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppContoller.java b/examples/spring-otel/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java similarity index 93% rename from examples/spring-otel/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppContoller.java rename to examples/spring-otel/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java index df993cf8b91..38ddd8f39af 100644 --- a/examples/spring-otel/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppContoller.java +++ b/examples/spring-otel/src/main/java/com/commercetools/sdk/examples/springmvc/web/AppController.java @@ -19,7 +19,7 @@ import java.util.concurrent.ExecutionException; @Controller -public class AppContoller { +public class AppController { @GetMapping("/") public String home() { return "home/index"; @@ -43,10 +43,10 @@ public String pop(Model model, HttpSession session) throws ExecutionException, I } @GetMapping("/cart") - public String cart(Model model, HttpSession session) { + public String cart(Model model, HttpSession session) throws ExecutionException, InterruptedException { final CompletableFuture cart = new CartRepository(apiRoot, session).meCart(); - model.addAttribute("cart", cart); + model.addAttribute("cart", cart.get()); return "mycart/index"; } diff --git a/examples/spring-otel/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java b/examples/spring-otel/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java deleted file mode 100644 index 471369f2b7f..00000000000 --- a/examples/spring-otel/src/test/java/com/commercetools/sdk/examples/springmvc/SpringmvcApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.commercetools.sdk.examples.springmvc; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class SpringmvcApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/examples/spring/build.gradle b/examples/spring/build.gradle index d3fdaccd2eb..2b3f6a3ec3d 100644 --- a/examples/spring/build.gradle +++ b/examples/spring/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.springframework.boot' version '2.6.0' + id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id "com.diffplug.spotless" version "6.10.0" @@ -31,8 +31,7 @@ spotless { ext { versions = [ - commercetools: "17.20.0", - newrelic: "7.7.0" + commercetools: "17.20.0" ] } @@ -44,7 +43,7 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation 'org.springframework.session:spring-session-core' - implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.0.4.RELEASE' + implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.2.RELEASE' developmentOnly("org.springframework.boot:spring-boot-devtools") testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' diff --git a/examples/spring/gradle/wrapper/gradle-wrapper.properties b/examples/spring/gradle/wrapper/gradle-wrapper.properties index ffed3a254e9..81aa1c0448a 100644 --- a/examples/spring/gradle/wrapper/gradle-wrapper.properties +++ b/examples/spring/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/CtpSecurityConfig.java b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/CtpSecurityConfig.java index 2f51401ee27..d95a668f4ed 100644 --- a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/CtpSecurityConfig.java +++ b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/CtpSecurityConfig.java @@ -122,21 +122,22 @@ public CtpReactiveAuthenticationManagerResolver(final ApiHttpClient apiHttpClien @Override public Mono resolve(final ServerWebExchange context) { return Mono.just(new CtpReactiveAuthenticationManager(meClient(apiHttpClient, context.getSession()), - credentials(), projectKey)); + credentials(), projectKey, authUrl)); } private ProjectApiRoot meClient(final ApiHttpClient client, final Mono session) { TokenStorage storage = new SessionTokenStorage(session); ApiRootBuilder builder = ApiRootBuilder.of(client) - .withApiBaseUrl(apiBaseUrl != null ? apiBaseUrl: ServiceRegion.GCP_EUROPE_WEST1.getApiUrl()) + .withApiBaseUrl(apiBaseUrl != null ? apiBaseUrl : ServiceRegion.GCP_EUROPE_WEST1.getApiUrl()) .withProjectKey(projectKey); if (authUrl != null) { - builder = builder.withAnonymousRefreshFlow(credentials(), authUrl + "/oauth/" + projectKey + "/anonymous/token", authUrl + "/oauth/token", storage); - } else { - builder = builder - .withAnonymousRefreshFlow(credentials(), ServiceRegion.GCP_EUROPE_WEST1, storage); + builder = builder.withAnonymousRefreshFlow(credentials(), + authUrl + "/oauth/" + projectKey + "/anonymous/token", authUrl + "/oauth/token", storage); + } + else { + builder = builder.withAnonymousRefreshFlow(credentials(), ServiceRegion.GCP_EUROPE_WEST1, storage); } return builder.build(projectKey); diff --git a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/MeClientFilter.java b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/MeClientFilter.java index 235fe2fb594..ff078bef3cc 100644 --- a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/MeClientFilter.java +++ b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/MeClientFilter.java @@ -64,14 +64,15 @@ private ProjectApiRoot meClient(ApiHttpClient client, Mono session) final TokenStorage storage = new SessionTokenStorage(session); ApiRootBuilder builder = ApiRootBuilder.of(client) - .withApiBaseUrl(apiBaseUrl != null ? apiBaseUrl: ServiceRegion.GCP_EUROPE_WEST1.getApiUrl()) + .withApiBaseUrl(apiBaseUrl != null ? apiBaseUrl : ServiceRegion.GCP_EUROPE_WEST1.getApiUrl()) .withProjectKey(projectKey); if (authUrl != null) { - builder = builder.withAnonymousRefreshFlow(credentials(), authUrl + "/oauth/" + projectKey + "/anonymous/token", authUrl + "/oauth/token", storage); - } else { - builder = builder - .withAnonymousRefreshFlow(credentials(), ServiceRegion.GCP_EUROPE_WEST1, storage); + builder = builder.withAnonymousRefreshFlow(credentials(), + authUrl + "/oauth/" + projectKey + "/anonymous/token", authUrl + "/oauth/token", storage); + } + else { + builder = builder.withAnonymousRefreshFlow(credentials(), ServiceRegion.GCP_EUROPE_WEST1, storage); } return builder.build(projectKey); diff --git a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/WebConfig.java b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/WebConfig.java index 3cec957e39f..d9652594111 100644 --- a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/WebConfig.java +++ b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/config/WebConfig.java @@ -13,11 +13,11 @@ import org.springframework.web.reactive.config.ResourceHandlerRegistry; import org.springframework.web.reactive.config.ViewResolverRegistry; import org.springframework.web.reactive.config.WebFluxConfigurer; -import org.thymeleaf.extras.springsecurity5.dialect.SpringSecurityDialect; -import org.thymeleaf.spring5.ISpringWebFluxTemplateEngine; -import org.thymeleaf.spring5.SpringWebFluxTemplateEngine; -import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver; -import org.thymeleaf.spring5.view.reactive.ThymeleafReactiveViewResolver; +import org.thymeleaf.extras.springsecurity6.dialect.SpringSecurityDialect; +import org.thymeleaf.spring6.ISpringWebFluxTemplateEngine; +import org.thymeleaf.spring6.SpringWebFluxTemplateEngine; +import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver; +import org.thymeleaf.spring6.view.reactive.ThymeleafReactiveViewResolver; import org.thymeleaf.templatemode.TemplateMode; @Configuration diff --git a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/service/CtpClientBeanService.java b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/service/CtpClientBeanService.java index 88134a24a1f..f575efb81f8 100644 --- a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/service/CtpClientBeanService.java +++ b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/service/CtpClientBeanService.java @@ -7,7 +7,6 @@ import io.vrap.rmf.base.client.*; import io.vrap.rmf.base.client.oauth2.ClientCredentials; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Bean; @@ -41,7 +40,8 @@ public ApiHttpClient client() { ApiRootBuilder builder; if (authUrl != null) { builder = ApiRootBuilder.of().defaultClient(credentials(), authUrl + "/oauth/token", apiBaseUrl); - } else { + } + else { builder = ApiRootBuilder.of().defaultClient(credentials()); } @@ -49,7 +49,6 @@ public ApiHttpClient client() { } @Bean - @Autowired public ProjectApiRoot apiRoot(ApiHttpClient client) { final ProjectApiRoot build = ProjectApiRoot.fromClient(projectKey, client); diff --git a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/service/CtpReactiveAuthenticationManager.java b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/service/CtpReactiveAuthenticationManager.java index 6ea4cf3e5a8..d1f6c7fae25 100644 --- a/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/service/CtpReactiveAuthenticationManager.java +++ b/examples/spring/src/main/java/com/commercetools/sdk/examples/spring/service/CtpReactiveAuthenticationManager.java @@ -25,6 +25,7 @@ import reactor.core.publisher.Mono; public class CtpReactiveAuthenticationManager implements ReactiveAuthenticationManager { + private final String authUrl; VrapHttpClient client; ProjectApiRoot apiRoot; @@ -33,11 +34,12 @@ public class CtpReactiveAuthenticationManager implements ReactiveAuthenticationM private final String projectKey; public CtpReactiveAuthenticationManager(final ProjectApiRoot apiRoot, final ClientCredentials credentials, - final String projectKey) { + final String projectKey, final String authUrl) { this.apiRoot = apiRoot; this.client = HttpClientSupplier.of().get(); this.credentials = credentials; this.projectKey = projectKey; + this.authUrl = authUrl; } @Override @@ -54,10 +56,12 @@ public Mono authenticate(Authentication authentication) { .fromFuture( apiRoot.me().login().post(customerSignin.build()).execute().exceptionally(throwable -> null)) .flatMap(customerSignInResultApiHttpResponse -> { + String passwordFlowTokenURL = this.authUrl != null + ? this.authUrl + "/oauth/" + projectKey + "/customers/token" + : ServiceRegion.GCP_EUROPE_WEST1.getPasswordFlowTokenURL(projectKey); GlobalCustomerPasswordTokenSupplier supplier = new GlobalCustomerPasswordTokenSupplier( credentials.getClientId(), credentials.getClientSecret(), authentication.getName(), - authentication.getCredentials().toString(), null, - ServiceRegion.GCP_EUROPE_WEST1.getPasswordFlowTokenURL(projectKey), client); + authentication.getCredentials().toString(), null, passwordFlowTokenURL, client); return Mono.zip(Mono.fromFuture(supplier.getToken().exceptionally(throwable -> null)), Mono.just(customerSignInResultApiHttpResponse.getBody())); diff --git a/examples/spring/src/main/resources/logback.xml b/examples/spring/src/main/resources/logback.xml index 668900f6930..ceeb57bb009 100644 --- a/examples/spring/src/main/resources/logback.xml +++ b/examples/spring/src/main/resources/logback.xml @@ -5,7 +5,7 @@ class="ch.qos.logback.core.ConsoleAppender"> - %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%logger{1.}): requestId=%X{requestId} %msg%n%throwable + %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%logger{1}): requestId=%X{requestId} %msg%n%throwable diff --git a/examples/spring/src/test/java/com/commercetools/sdk/examples/spring/ApplicationTests.java b/examples/spring/src/test/java/com/commercetools/sdk/examples/spring/ApplicationTests.java deleted file mode 100644 index 610883860f3..00000000000 --- a/examples/spring/src/test/java/com/commercetools/sdk/examples/spring/ApplicationTests.java +++ /dev/null @@ -1,14 +0,0 @@ - -package com.commercetools.sdk.examples.spring; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class ApplicationTests { - - @Test - void contextLoads() { - } - -}