diff --git a/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/ActionRestController.java b/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/ActionRestController.java index 6d52c0e..49fd45c 100644 --- a/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/ActionRestController.java +++ b/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/ActionRestController.java @@ -5,13 +5,11 @@ package com.liferay.sample; -import com.liferay.petra.string.StringBundler; +import com.liferay.client.extension.util.spring.boot.BaseRestController; import org.json.JSONObject; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.oauth2.jwt.Jwt; @@ -19,7 +17,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.reactive.function.client.WebClient; /** * @author Andrea Sbarra @@ -35,27 +32,14 @@ public ResponseEntity post( JSONObject jsonObject = new JSONObject(json); return new ResponseEntity<>( - WebClient.create( - StringBundler.concat( - lxcDXPServerProtocol, "://", lxcDXPMainDomain, - "/o/headless-commerce-delivery-cart/v1.0/carts/", - jsonObject.getLong("commerceOrderId")) - ).patch( - ).accept( - MediaType.APPLICATION_JSON - ).contentType( - MediaType.APPLICATION_JSON - ).bodyValue( + patch( + "Bearer " + jwt.getTokenValue(), new JSONObject( ).put( "purchaseOrderNumber", jsonObject.getString("pon") - ).toString() - ).header( - HttpHeaders.AUTHORIZATION, "Bearer " + jwt.getTokenValue() - ).retrieve( - ).bodyToMono( - String.class - ).block(), + ).toString(), + "/o/headless-commerce-delivery-cart/v1.0/carts/" + + jsonObject.getLong("commerceOrderId")), HttpStatus.OK); } diff --git a/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/BaseRestController.java b/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/BaseRestController.java deleted file mode 100644 index 15b6812..0000000 --- a/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/BaseRestController.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * SPDX-FileCopyrightText: (c) 2024 Liferay, Inc. https://liferay.com - * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 - */ - -package com.liferay.sample; - -import java.util.Map; - -import org.apache.commons.logging.Log; - -import org.json.JSONObject; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.oauth2.jwt.Jwt; - -/** - * @author Raymond Augé - * @author Gregory Amerson - * @author Brian Wing Shun Chan - */ -public abstract class BaseRestController { - - protected void log(Jwt jwt, Log log) { - if (log.isInfoEnabled()) { - log.info("JWT Claims: " + jwt.getClaims()); - log.info("JWT ID: " + jwt.getId()); - log.info("JWT Subject: " + jwt.getSubject()); - } - } - - protected void log(Jwt jwt, Log log, Map parameters) { - if (log.isInfoEnabled()) { - log.info("JWT Claims: " + jwt.getClaims()); - log.info("JWT ID: " + jwt.getId()); - log.info("JWT Subject: " + jwt.getSubject()); - log.info("Parameters: " + parameters); - } - } - - protected void log(Jwt jwt, Log log, String json) { - if (log.isInfoEnabled()) { - try { - JSONObject jsonObject = new JSONObject(json); - - log.info("JSON: " + jsonObject.toString(4)); - } - catch (Exception exception) { - log.error("JSON: " + json, exception); - } - - log.info("JWT Claims: " + jwt.getClaims()); - log.info("JWT ID: " + jwt.getId()); - log.info("JWT Subject: " + jwt.getSubject()); - } - } - - @Value("${com.liferay.lxc.dxp.mainDomain}") - protected String lxcDXPMainDomain; - - @Value("${com.liferay.lxc.dxp.server.protocol}") - protected String lxcDXPServerProtocol; - -} \ No newline at end of file diff --git a/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/ReadyRestController.java b/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/ReadyRestController.java index ea39517..37ad9db 100644 --- a/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/ReadyRestController.java +++ b/liferay-sample-commerce-checkout-step/src/main/java/com/liferay/sample/ReadyRestController.java @@ -5,6 +5,8 @@ package com.liferay.sample; +import com.liferay.client.extension.util.spring.boot.BaseRestController; + import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/BaseRestController.java b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/BaseRestController.java deleted file mode 100644 index 38f15b9..0000000 --- a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/BaseRestController.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com - * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 - */ - -package com.liferay.sample; - -import java.util.Map; - -import org.apache.commons.logging.Log; - -import org.json.JSONObject; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.oauth2.jwt.Jwt; - -/** - * @author Raymond Augé - * @author Gregory Amerson - * @author Brian Wing Shun Chan - */ -public abstract class BaseRestController { - - protected void log(Jwt jwt, Log log) { - if (log.isInfoEnabled()) { - log.info("JWT Claims: " + jwt.getClaims()); - log.info("JWT ID: " + jwt.getId()); - log.info("JWT Subject: " + jwt.getSubject()); - } - } - - protected void log(Jwt jwt, Log log, Map parameters) { - if (log.isInfoEnabled()) { - log.info("JWT Claims: " + jwt.getClaims()); - log.info("JWT ID: " + jwt.getId()); - log.info("JWT Subject: " + jwt.getSubject()); - log.info("Parameters: " + parameters); - } - } - - protected void log(Jwt jwt, Log log, String json) { - if (log.isInfoEnabled()) { - try { - JSONObject jsonObject = new JSONObject(json); - - log.info("JSON: " + jsonObject.toString(4)); - } - catch (Exception exception) { - log.error("JSON: " + json, exception); - } - - log.info("JWT Claims: " + jwt.getClaims()); - log.info("JWT ID: " + jwt.getId()); - log.info("JWT Subject: " + jwt.getSubject()); - } - } - - @Value("${com.liferay.lxc.dxp.mainDomain}") - protected String lxcDXPMainDomain; - - @Value("${com.liferay.lxc.dxp.server.protocol}") - protected String lxcDXPServerProtocol; - -} \ No newline at end of file diff --git a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/DadJokeRestController.java b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/DadJokeRestController.java index 6a325b1..e1d150f 100644 --- a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/DadJokeRestController.java +++ b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/DadJokeRestController.java @@ -5,6 +5,8 @@ package com.liferay.sample; +import com.liferay.client.extension.util.spring.boot.BaseRestController; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/NotificationType1RestController.java b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/NotificationType1RestController.java index 5da2773..930e528 100644 --- a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/NotificationType1RestController.java +++ b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/NotificationType1RestController.java @@ -5,6 +5,8 @@ package com.liferay.sample; +import com.liferay.client.extension.util.spring.boot.BaseRestController; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectAction1RestController.java b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectAction1RestController.java index c879cd0..5844a0e 100644 --- a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectAction1RestController.java +++ b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectAction1RestController.java @@ -5,6 +5,8 @@ package com.liferay.sample; +import com.liferay.client.extension.util.spring.boot.BaseRestController; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectAction2RestController.java b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectAction2RestController.java index 8136e5a..29503a1 100644 --- a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectAction2RestController.java +++ b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectAction2RestController.java @@ -5,6 +5,7 @@ package com.liferay.sample; +import com.liferay.client.extension.util.spring.boot.BaseRestController; import com.liferay.petra.string.StringBundler; import org.json.JSONObject; diff --git a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectEntryManager1RestController.java b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectEntryManager1RestController.java index cd757a9..cf972c2 100644 --- a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectEntryManager1RestController.java +++ b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectEntryManager1RestController.java @@ -5,6 +5,8 @@ package com.liferay.sample; +import com.liferay.client.extension.util.spring.boot.BaseRestController; + import java.util.Collections; import java.util.HashMap; import java.util.Map; diff --git a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectValidationRule1RestController.java b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectValidationRule1RestController.java index 84c5fe8..fadc50a 100644 --- a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectValidationRule1RestController.java +++ b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ObjectValidationRule1RestController.java @@ -5,6 +5,8 @@ package com.liferay.sample; +import com.liferay.client.extension.util.spring.boot.BaseRestController; + import java.util.Objects; import org.apache.commons.logging.Log; diff --git a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ReadyRestController.java b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ReadyRestController.java index ad13d94..c9447a4 100644 --- a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ReadyRestController.java +++ b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/ReadyRestController.java @@ -5,6 +5,8 @@ package com.liferay.sample; +import com.liferay.client.extension.util.spring.boot.BaseRestController; + import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/WorkflowAction1RestController.java b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/WorkflowAction1RestController.java index 6368d2d..8260442 100644 --- a/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/WorkflowAction1RestController.java +++ b/liferay-sample-etc-spring-boot/src/main/java/com/liferay/sample/WorkflowAction1RestController.java @@ -5,14 +5,14 @@ package com.liferay.sample; +import com.liferay.client.extension.util.spring.boot.BaseRestController; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.JSONObject; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.oauth2.jwt.Jwt; @@ -20,10 +20,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.reactive.function.client.WebClient; -import org.springframework.web.reactive.function.client.WebClientResponseException; - -import reactor.core.publisher.Mono; /** * @author Raymond Augé @@ -41,48 +37,16 @@ public ResponseEntity post( log(jwt, _log, json); - WebClient.Builder builder = WebClient.builder(); - - WebClient webClient = builder.baseUrl( - lxcDXPServerProtocol + "://" + lxcDXPMainDomain - ).defaultHeader( - HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE - ).defaultHeader( - HttpHeaders.AUTHORIZATION, "Bearer " + jwt.getTokenValue() - ).defaultHeader( - HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE - ).build(); - JSONObject jsonObject = new JSONObject(json); - webClient.post( - ).uri( - jsonObject.getString("transitionURL") - ).bodyValue( - "{\"transitionName\": \"approve\"}" - ).exchangeToMono( - clientResponse -> { - HttpStatus httpStatus = clientResponse.statusCode(); - - if (httpStatus.is2xxSuccessful()) { - return clientResponse.bodyToMono(String.class); - } - else if (httpStatus.is4xxClientError()) { - return Mono.just(httpStatus.getReasonPhrase()); - } - - Mono mono = - clientResponse.createException(); + String response = post( + "Bearer " + jwt.getTokenValue(), + "{\"transitionName\": \"approve\"}", + jsonObject.getString("transitionURL")); - return mono.flatMap(Mono::error); - } - ).doOnNext( - output -> { - if (_log.isInfoEnabled()) { - _log.info("Output: " + output); - } - } - ).subscribe(); + if (_log.isInfoEnabled()) { + _log.info("Output: " + response); + } return new ResponseEntity<>(json, HttpStatus.OK); } diff --git a/liferay-sample-site-initializer/client-extension.yaml b/liferay-sample-site-initializer/client-extension.yaml index f1942bf..5e03892 100644 --- a/liferay-sample-site-initializer/client-extension.yaml +++ b/liferay-sample-site-initializer/client-extension.yaml @@ -7,7 +7,7 @@ liferay-sample-site-initializer: liferay-sample-site-initializer-oauth-application-headless-server: .serviceAddress: localhost:8080 .serviceScheme: http - name: Liferay Sample OAuth Application Headless Server + name: Liferay Sample Site Initializer OAuth Application Headless Server scopes: - Liferay.Headless.Site.everything type: oAuthApplicationHeadlessServer \ No newline at end of file