This is an automated email from the ASF dual-hosted git repository.
shenlin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-eventbridge.git
The following commit(s) were added to refs/heads/main by this push:
new 9583243 Fix api param and connection param check (#59)
9583243 is described below
commit 95832434919942564d8934e49387114d86830675
Author: zhaohai <[email protected]>
AuthorDate: Tue Mar 21 13:38:02 2023 +0800
Fix api param and connection param check (#59)
Fix api param and connection param check
---
.../api/controller/ApiDestinationController.java | 1 +
.../api/controller/ConnectionController.java | 7 +-
.../CreateApiDestinationRequest.java | 8 +-
.../CreateApiDestinationResponse.java | 4 +-
.../DeleteApiDestinationResponse.java | 4 +-
.../apidestination/GetApiDestinationResponse.java | 4 +-
.../apidestination/ListApiDestinationsRequest.java | 13 +++-
.../ListApiDestinationsResponse.java | 6 +-
.../UpdateApiDestinationRequest.java | 9 ++-
.../UpdateApiDestinationResponse.java | 4 +-
.../dto/connection/CreateConnectionRequest.java | 7 +-
.../dto/connection/CreateConnectionResponse.java | 4 +-
.../dto/connection/DeleteConnectionResponse.java | 4 +-
.../api/dto/connection/GetConnectionResponse.java | 4 +-
.../api/dto/connection/ListConnectionRequest.java | 14 +++-
.../api/dto/connection/ListConnectionResponse.java | 6 +-
.../dto/connection/UpdateConnectionRequest.java | 6 ++
.../dto/connection/UpdateConnectionResponse.java | 4 +-
.../domain/common/EventBridgeConstants.java | 8 ++
.../common/exception/EventBridgeErrorCode.java | 26 ++++++-
.../apidestination/ApiDestinationService.java | 22 +++++-
.../parameter/HttpApiParameters.java | 3 -
.../domain/model/connection/ConnectionService.java | 89 +++++++++++++++++++---
.../connection/parameter/NetworkParameters.java | 2 -
24 files changed, 212 insertions(+), 47 deletions(-)
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationController.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationController.java
index d99aa98..0f99001 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationController.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationController.java
@@ -168,6 +168,7 @@ public class ApiDestinationController {
return new ListApiDestinationsResponse(null, null, null,
0).parameterCheckFailRes(
errMessage.toString());
}
+ listApiDestinationsRequest.checkMaxResultsAndNextToken();
final PaginationResult<List<ApiDestinationDTO>>
listPaginationResult
=
apiDestinationService.listApiDestinations(accountAPI.getResourceOwnerAccountId(ctx),
listApiDestinationsRequest.getApiDestinationNamePrefix(),
listApiDestinationsRequest.getNextToken(),
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ConnectionController.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ConnectionController.java
index 58a6d2f..e08fb49 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ConnectionController.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ConnectionController.java
@@ -192,6 +192,7 @@ public class ConnectionController {
if (!CollectionUtils.isEmpty(errMessage)) {
return new ListConnectionResponse(null, null, null,
0).parameterCheckFailRes(errMessage.toString());
}
+ listConnectionRequest.checkMaxResultsAndNextToken();
final PaginationResult<List<ConnectionDTO>>
listPaginationResult = connectionService.listConnections(
accountAPI.getResourceOwnerAccountId(ctx),
listConnectionRequest.getConnectionNamePrefix(),
listConnectionRequest.getNextToken(),
listConnectionRequest.getMaxResults());
@@ -249,8 +250,10 @@ public class ConnectionController {
}
if (oauthParameters != null) {
OAuthParameters.ClientParameters clientParameters =
oauthParameters.getClientParameters();
- clientParameters.setClientSecret("**");
- oauthParameters.setClientParameters(clientParameters);
+ if (clientParameters != null) {
+ clientParameters.setClientSecret("**");
+ oauthParameters.setClientParameters(clientParameters);
+ }
}
return connectionResponse;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationRequest.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationRequest.java
index b6ff979..b363376 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationRequest.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationRequest.java
@@ -18,7 +18,6 @@
package org.apache.rocketmq.eventbridge.adapter.api.dto.apidestination;
import com.google.gson.annotations.SerializedName;
-import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import lombok.Getter;
@@ -33,19 +32,20 @@ import org.hibernate.validator.constraints.Length;
@ToString
public class CreateApiDestinationRequest extends BaseResponse {
- @Pattern(regexp = "^[A-Za-z|0-9][A-Za-z|0-9|_|-]+$", message = "The
ApiDestination name is invalid! Which should match the pattern.")
- @Length(min = 1, max = 127, message = "The ApiDestination name Exceeded
length.")
+ @Pattern(regexp = "^[A-Za-z|0-9][A-Za-z|0-9|_|-]+$", message = "The
ApiDestination name is invalid! Only letters a~z or A~Z, numbers 0~9,
underscore (_) and dash (-) are supported.")
+ @Length(min = 1, max = 127, message = "The ApiDestination name length
cannot exceed 127.")
@NotBlank(message = "ApiDestinationName is blank")
@SerializedName("ApiDestinationName")
private String apiDestinationName;
@SerializedName("ConnectionName")
+ @Length(max = 127, message = "The connectionName length cannot exceed
127.")
private String connectionName;
@SerializedName("Description")
+ @Length(max = 255, message = "The ApiDestination description length cannot
exceed 255.")
private String description;
- @Valid
@SerializedName("HttpApiParameters")
private HttpApiParameters httpApiParameters;
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationResponse.java
index 457c781..859b2c0 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationResponse.java
@@ -24,6 +24,8 @@ import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -39,7 +41,7 @@ public class CreateApiDestinationResponse extends
BaseResponse {
}
public CreateApiDestinationResponse parameterCheckFailRes(String errorMsg)
{
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/DeleteApiDestinationResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/DeleteApiDestinationResponse.java
index 991096f..58703b5 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/DeleteApiDestinationResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/DeleteApiDestinationResponse.java
@@ -24,6 +24,8 @@ import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -37,7 +39,7 @@ public class DeleteApiDestinationResponse extends
BaseResponse {
}
public DeleteApiDestinationResponse parameterCheckFailRes(String errorMsg)
{
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/GetApiDestinationResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/GetApiDestinationResponse.java
index a45103d..fc1f59a 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/GetApiDestinationResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/GetApiDestinationResponse.java
@@ -26,6 +26,8 @@ import
org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
import
org.apache.rocketmq.eventbridge.domain.model.apidestination.parameter.HttpApiParameters;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -57,7 +59,7 @@ public class GetApiDestinationResponse extends BaseResponse {
}
public GetApiDestinationResponse parameterCheckFailRes(String errorMsg) {
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsRequest.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsRequest.java
index 19aa266..a2a9a7d 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsRequest.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsRequest.java
@@ -19,10 +19,10 @@ package
org.apache.rocketmq.eventbridge.adapter.api.dto.apidestination;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.Min;
-import javax.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
+import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
@Getter
@@ -35,10 +35,17 @@ public class ListApiDestinationsRequest extends
BaseResponse {
@Min(value = 0, message = "The limit size of page is invalid, which must
greater than 0 and less than [{0}].")
@SerializedName("MaxResults")
- private int maxResults;
+ private Integer maxResults;
- @NotBlank(message = "The next token of page is invalid. which should be
{[0]}.")
@SerializedName("NextToken")
private String nextToken;
+ public void checkMaxResultsAndNextToken() {
+ if (StringUtils.isBlank(this.getNextToken())) {
+ this.setNextToken("0");
+ }
+ if (this.getMaxResults() == null) {
+ this.setMaxResults(10);
+ }
+ }
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsResponse.java
index 0f05bab..9a51299 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsResponse.java
@@ -26,6 +26,8 @@ import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -42,7 +44,7 @@ public class ListApiDestinationsResponse extends BaseResponse
{
private Integer total;
@SerializedName("MaxResults")
- private int maxResults;
+ private Integer maxResults;
public ListApiDestinationsResponse success() {
setCode(EventBridgeErrorCode.Success.getCode());
@@ -51,7 +53,7 @@ public class ListApiDestinationsResponse extends BaseResponse
{
}
public ListApiDestinationsResponse parameterCheckFailRes(String errorMsg) {
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationRequest.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationRequest.java
index 3178ea9..7dd4a2f 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationRequest.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationRequest.java
@@ -18,30 +18,35 @@
package org.apache.rocketmq.eventbridge.adapter.api.dto.apidestination;
import com.google.gson.annotations.SerializedName;
-import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.model.apidestination.parameter.HttpApiParameters;
+import org.hibernate.validator.constraints.Length;
@Getter
@Setter
@ToString
public class UpdateApiDestinationRequest extends BaseResponse {
+ @Pattern(regexp = "^[A-Za-z|0-9][A-Za-z|0-9|_|-]+$", message = "The
ApiDestination name is invalid! Only letters a~z or A~Z, numbers 0~9,
underscore (_) and dash (-) are supported.")
+ @Length(min = 1, max = 127, message = "The ApiDestination name length
cannot exceed 127.")
@NotBlank(message = "ApiDestinationName is blank")
@SerializedName("ApiDestinationName")
private String apiDestinationName;
@SerializedName("ConnectionName")
+ @Length(max = 127, message = "The connectionName length cannot exceed
127.")
private String connectionName;
@SerializedName("Description")
+ @Length(max = 255, message = "The ApiDestination description length cannot
exceed 255.")
private String description;
- @Valid
@SerializedName("HttpApiParameters")
private HttpApiParameters httpApiParameters;
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationResponse.java
index ab12d59..cad0b02 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationResponse.java
@@ -24,6 +24,8 @@ import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -37,7 +39,7 @@ public class UpdateApiDestinationResponse extends
BaseResponse {
}
public UpdateApiDestinationResponse parameterCheckFailRes(String errorMsg)
{
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionRequest.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionRequest.java
index 09c896d..9e9de83 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionRequest.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionRequest.java
@@ -18,7 +18,6 @@
package org.apache.rocketmq.eventbridge.adapter.api.dto.connection;
import com.google.gson.annotations.SerializedName;
-import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import lombok.Getter;
@@ -34,16 +33,16 @@ import org.hibernate.validator.constraints.Length;
@ToString
public class CreateConnectionRequest extends BaseRequest {
- @Pattern(regexp = "^[A-Za-z|0-9][A-Za-z|0-9|_|-]+$", message = "The
Connection name is invalid! Which should match the pattern.")
- @Length(min = 1, max = 127, message = "The Connection name Exceeded
length.")
+ @Pattern(regexp = "^[A-Za-z|0-9][A-Za-z|0-9|_|-]+$", message = "The
Connection name is invalid! Only letters a~z or A~Z, numbers 0~9, underscore
(_) and dash (-) are supported.")
+ @Length(min = 1, max = 127, message = "The connection name length cannot
exceed 127.")
@NotBlank(message = "ConnectionName is blank.")
@SerializedName("ConnectionName")
private String connectionName;
@SerializedName("Description")
+ @Length(max = 255, message = "The connection description length cannot
exceed 255.")
private String description;
- @Valid
@SerializedName("NetworkParameters")
private NetworkParameters networkParameters;
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionResponse.java
index df10bdc..d3ab455 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionResponse.java
@@ -24,6 +24,8 @@ import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -39,7 +41,7 @@ public class CreateConnectionResponse extends BaseResponse {
}
public CreateConnectionResponse parameterCheckFailRes(String errorMsg) {
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/DeleteConnectionResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/DeleteConnectionResponse.java
index 1d2c1c5..3991199 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/DeleteConnectionResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/DeleteConnectionResponse.java
@@ -24,6 +24,8 @@ import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -37,7 +39,7 @@ public class DeleteConnectionResponse extends BaseResponse {
}
public DeleteConnectionResponse parameterCheckFailRes(String errorMsg) {
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/GetConnectionResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/GetConnectionResponse.java
index d5f31fe..1cd5a49 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/GetConnectionResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/GetConnectionResponse.java
@@ -26,6 +26,8 @@ import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -42,7 +44,7 @@ public class GetConnectionResponse extends BaseResponse {
}
public GetConnectionResponse parameterCheckFailRes(String errorMsg) {
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ListConnectionRequest.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ListConnectionRequest.java
index 7b18766..d935a22 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ListConnectionRequest.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ListConnectionRequest.java
@@ -19,10 +19,10 @@ package
org.apache.rocketmq.eventbridge.adapter.api.dto.connection;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.Min;
-import javax.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
+import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseRequest;
@Setter
@@ -35,9 +35,17 @@ public class ListConnectionRequest extends BaseRequest {
@Min(value = 0, message = "The limit size of page is invalid, which must
greater than 0 and less than [{0}].")
@SerializedName("MaxResults")
- private int maxResults;
+ private Integer maxResults;
- @NotBlank(message = "The next token of page is invalid. which should be
{[0]}.")
@SerializedName("NextToken")
private String nextToken;
+
+ public void checkMaxResultsAndNextToken() {
+ if (StringUtils.isBlank(this.getNextToken())) {
+ this.setNextToken("0");
+ }
+ if (this.getMaxResults() == null) {
+ this.setMaxResults(10);
+ }
+ }
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ListConnectionResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ListConnectionResponse.java
index b083f81..f624f6f 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ListConnectionResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ListConnectionResponse.java
@@ -26,6 +26,8 @@ import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -42,7 +44,7 @@ public class ListConnectionResponse extends BaseResponse {
private Integer total;
@SerializedName("MaxResults")
- private int maxResults;
+ private Integer maxResults;
public ListConnectionResponse success() {
setCode(EventBridgeErrorCode.Success.getCode());
@@ -51,7 +53,7 @@ public class ListConnectionResponse extends BaseResponse {
}
public ListConnectionResponse parameterCheckFailRes(String errorMsg) {
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionRequest.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionRequest.java
index faccf29..22d7024 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionRequest.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionRequest.java
@@ -19,23 +19,29 @@ package
org.apache.rocketmq.eventbridge.adapter.api.dto.connection;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseRequest;
import
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.AuthParameters;
import
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.NetworkParameters;
+import org.hibernate.validator.constraints.Length;
@Setter
@Getter
@ToString
public class UpdateConnectionRequest extends BaseRequest {
+ @Pattern(regexp = "^[A-Za-z|0-9][A-Za-z|0-9|_|-]+$", message = "The
Connection name is invalid! Only letters a~z or A~Z, numbers 0~9, underscore
(_) and dash (-) are supported.")
+ @Length(min = 1, max = 127, message = "The connection name length cannot
exceed 127.")
@NotBlank(message = "ConnectionName is blank")
@SerializedName("ConnectionName")
private String connectionName;
@SerializedName("Description")
+ @Length(max = 255, message = "The connection description length cannot
exceed 255.")
private String description;
@SerializedName("NetworkParameters")
diff --git
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionResponse.java
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionResponse.java
index 99707e1..bc52709 100644
---
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionResponse.java
+++
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionResponse.java
@@ -24,6 +24,8 @@ import lombok.ToString;
import org.apache.rocketmq.eventbridge.adapter.api.dto.BaseResponse;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
+import static
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode.RequestParameterInvalid;
+
@AllArgsConstructor
@Getter
@Setter
@@ -37,7 +39,7 @@ public class UpdateConnectionResponse extends BaseResponse {
}
public UpdateConnectionResponse parameterCheckFailRes(String errorMsg) {
- setCode(Integer.toString(409));
+ setCode(RequestParameterInvalid.getCode());
setMessage(errorMsg);
return this;
}
diff --git
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/common/EventBridgeConstants.java
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/common/EventBridgeConstants.java
index 14fa1a8..08df563 100644
---
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/common/EventBridgeConstants.java
+++
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/common/EventBridgeConstants.java
@@ -53,4 +53,12 @@ public class EventBridgeConstants {
public static final String SYSTEM_ENVIRONMENT_ACCOUNT_ID = "AccountId";
+ public static final int EVENT_ENDPOINT_MAX_LENGTH = 127;
+
+ public static final int EVENT_ENDPOINT_MIN_LENGTH = 1;
+
+ public static final int MIN_LENGTH_CONSTANT = 1;
+
+ public static final int MAX_LENGTH_CONSTANT = 127;
+
}
diff --git
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/common/exception/EventBridgeErrorCode.java
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/common/exception/EventBridgeErrorCode.java
index 73759c1..52f5c62 100644
---
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/common/exception/EventBridgeErrorCode.java
+++
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/common/exception/EventBridgeErrorCode.java
@@ -98,6 +98,17 @@ public enum EventBridgeErrorCode implements BaseErrorCode {
LimitSizeInvalid(409, "LimitSizeInvalid", "The limit size of page is
invalid, which must greater than 0 and less than [{0}]."),
NextTokenInvalid(409, "NextTokenInvalid", "The next token of page is
invalid. which should be {[0]}."),
OauthHttpParametersEmpty(409, "OauthHttpParametersEmpty",
"OauthHttpParameters is Empty."),
+ BasicRequiredParameterIsEmpty(409, "BasicRequiredParameterIsEmpty", "Basic
required parameters are empty, the required parameters are username and
password !"),
+
+ BasicUserNameLengthExceed(409, "BasicUserNameLengthExceed", "Basic
username length cannot exceed 127 !"),
+
+ BasicPassWordLengthExceed(409, "BasicPassWordLengthExceed", "Basic
password length cannot exceed 127 !"),
+
+ ApiKeyNameLengthExceed(409, "ApiKeyNameLengthExceed", "Api key name length
cannot exceed 127 !"),
+
+ ApiKeyValueLengthExceed(409, "ApiKeyValueLengthExceed", "Api key value
length cannot exceed 127 !"),
+ ApiKeyRequiredParameterIsEmpty(409, "ApiKeyRequiredParameterIsEmpty", "Api
Key required parameters are empty, the required parameters are apiKeyName and
apiKeyValue !"),
+ OAuthRequiredParameterIsEmpty(409, "OAuthRequiredParameterIsEmpty", "OAuth
required parameters are empty, the required parameters are
authorizationEndpoint and httpMethod !"),
//API Destination
ApiDestinationNameInvalid(409, "ApiDestinationNameInvalid", "The
api-destination name [{0}] is invalid! Which should match the pattern [{1}]."),
@@ -109,7 +120,20 @@ public enum EventBridgeErrorCode implements BaseErrorCode {
// SecretManagerAPI
SecretManagerAPICreateSecretNameFailed(409,
"SecretManagerAPICreateSecretNameFailed", "Create secret manager api secret
name [{0}] failed"),
SecretManagerAPIDeleteSecretFailed(409,
"SecretManagerAPIDeleteSecretFailed", "Delete secret manager api secret [{0}]
failed"),
- SecretManagerAPIGetSecretValueFailed(409,
"SecretManagerAPIGetSecretValueFailed", "Get secret manager api secret value
[{0}] failed");
+ SecretManagerAPIGetSecretValueFailed(409,
"SecretManagerAPIGetSecretValueFailed", "Get secret manager api secret value
[{0}] failed"),
+
+ HttpApiParametersIsNull(409, "HttpApiParametersIsNull", "HttpApiParameters
is null !"),
+ EndpointIsBlank(409, "EndpointIsBlank", "Endpoint is blank !"),
+ MethodIsBlank(409, "Method", "Method is blank !"),
+ NetworkParametersIsNull(409, "NetworkParametersIsNull", "NetworkParameters
is null !"),
+ NetworkTypeIsBlank(409, "NetworkTypeIsBlank", "NetworkType is blank !"),
+ EndpointLengthExceed(409, "EndpointLengthExceed", "Endpoint length cannot
exceed 127 !"),
+
+ ClientIDLengthExceed(409, "ClientIDLengthExceed", "ClientID length cannot
exceed 127 !"),
+
+ ClientSecretLengthExceed(409, "ClientSecretLengthExceed", "ClientSecret
length cannot exceed 127 !"),
+ AuthorizationEndpointLengthExceed(409,
"AuthorizationEndpointLengthExceed", "Authorization endpoint length cannot
exceed 127 !"),
+ RequestParameterInvalid(409, "RequestParameterInvalid", "Request parameter
Invalid !");
private final int httpCode;
private final String code;
diff --git
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
index 8f989a1..874546f 100644
---
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
+++
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
@@ -18,10 +18,12 @@
package org.apache.rocketmq.eventbridge.domain.model.apidestination;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.eventbridge.domain.common.EventBridgeConstants;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
import org.apache.rocketmq.eventbridge.domain.model.AbstractResourceService;
import org.apache.rocketmq.eventbridge.domain.model.PaginationResult;
+import
org.apache.rocketmq.eventbridge.domain.model.apidestination.parameter.HttpApiParameters;
import
org.apache.rocketmq.eventbridge.domain.repository.ApiDestinationRepository;
import org.apache.rocketmq.eventbridge.exception.EventBridgeException;
import org.springframework.stereotype.Service;
@@ -49,6 +51,7 @@ public class ApiDestinationService extends
AbstractResourceService {
}
super.checkQuota(this.getApiDestinationCount(eventApiDestinationDTO.getAccountId()),
EventBridgeConstants.API_DESTINATION_COUNT_LIMIT,
ApiDestinationCountExceedLimit);
+ checkHttpApiParameters(eventApiDestinationDTO.getApiParams());
final Boolean apiDestination =
apiDestinationRepository.createApiDestination(eventApiDestinationDTO);
if (apiDestination) {
return eventApiDestinationDTO.getName();
@@ -56,11 +59,28 @@ public class ApiDestinationService extends
AbstractResourceService {
return null;
}
+ private void checkHttpApiParameters(HttpApiParameters httpApiParameters) {
+ if (httpApiParameters == null) {
+ throw new
EventBridgeException(EventBridgeErrorCode.HttpApiParametersIsNull);
+ }
+ if (StringUtils.isBlank(httpApiParameters.getEndpoint())) {
+ throw new
EventBridgeException(EventBridgeErrorCode.EndpointIsBlank);
+ }
+ if (StringUtils.isBlank(httpApiParameters.getMethod())) {
+ throw new EventBridgeException(EventBridgeErrorCode.MethodIsBlank);
+ }
+ int len = httpApiParameters.getEndpoint().length();
+ if (len > EventBridgeConstants.EVENT_ENDPOINT_MAX_LENGTH || len <
EventBridgeConstants.EVENT_ENDPOINT_MIN_LENGTH) {
+ throw new
EventBridgeException(EventBridgeErrorCode.EndpointLengthExceed);
+ }
+ }
+
@Transactional(rollbackFor = Exception.class, propagation =
Propagation.REQUIRED)
public Boolean updateApiDestination(ApiDestinationDTO apiDestinationDTO) {
if (checkApiDestination(apiDestinationDTO.getAccountId(),
apiDestinationDTO.getName()) == null) {
throw new
EventBridgeException(EventBridgeErrorCode.ApiDestinationNotExist,
apiDestinationDTO.getName());
}
+ checkHttpApiParameters(apiDestinationDTO.getApiParams());
return
apiDestinationRepository.updateApiDestination(apiDestinationDTO);
}
@@ -84,7 +104,7 @@ public class ApiDestinationService extends
AbstractResourceService {
}
public PaginationResult<List<ApiDestinationDTO>>
listApiDestinations(String accountId, String apiDestinationName, String
nextToken,
- int
maxResults) {
+
Integer maxResults) {
final List<ApiDestinationDTO> apiDestinationDTOS =
apiDestinationRepository.listApiDestinations(accountId, apiDestinationName,
nextToken, maxResults);
PaginationResult<List<ApiDestinationDTO>> result = new
PaginationResult();
result.setData(apiDestinationDTOS);
diff --git
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/parameter/HttpApiParameters.java
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/parameter/HttpApiParameters.java
index 221aa4a..2f907fd 100644
---
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/parameter/HttpApiParameters.java
+++
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/parameter/HttpApiParameters.java
@@ -19,7 +19,6 @@ package
org.apache.rocketmq.eventbridge.domain.model.apidestination.parameter;
import com.google.gson.annotations.SerializedName;
import java.util.List;
-import javax.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@@ -29,11 +28,9 @@ import lombok.ToString;
@ToString
public class HttpApiParameters {
- @NotBlank(message = "Endpoint is blank")
@SerializedName("Endpoint")
private String endpoint;
- @NotBlank(message = "Method is blank")
@SerializedName("Method")
private String method;
diff --git
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionService.java
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionService.java
index fc3617d..a773d7e 100644
---
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionService.java
+++
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionService.java
@@ -22,6 +22,7 @@ import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.eventbridge.domain.common.EventBridgeConstants;
+import
org.apache.rocketmq.eventbridge.domain.common.enums.AuthorizationTypeEnum;
import org.apache.rocketmq.eventbridge.domain.common.enums.NetworkTypeEnum;
import
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
import org.apache.rocketmq.eventbridge.domain.model.AbstractResourceService;
@@ -69,8 +70,9 @@ public class ConnectionService extends
AbstractResourceService {
throw new
EventBridgeException(EventBridgeErrorCode.ConnectionAlreadyExist,
connectionDTO.getConnectionName());
}
super.checkQuota(this.getConnectionCount(connectionDTO.getAccountId()),
EventBridgeConstants.CONNECTION_COUNT_LIMIT, ConnectionCountExceedLimit);
-
checkNetworkType(connectionDTO.getNetworkParameters().getNetworkType());
+ checkNetworkType(connectionDTO.getNetworkParameters());
if (connectionDTO.getAuthParameters() != null) {
+ checkAuthParameters(connectionDTO.getAuthParameters());
connectionDTO.setAuthParameters(setSecretData(connectionDTO.getAuthParameters(),
connectionDTO.getAccountId(), connectionDTO.getConnectionName()));
}
if (connectionRepository.createConnection(connectionDTO)) {
@@ -86,6 +88,61 @@ public class ConnectionService extends
AbstractResourceService {
return null;
}
+ private void checkAuthParameters(AuthParameters authParameters) {
+ if (authParameters != null) {
+ BasicAuthParameters basicAuthParameters =
authParameters.getBasicAuthParameters();
+ if (basicAuthParameters != null &&
AuthorizationTypeEnum.BASIC_AUTH.getType().equals(authParameters.getAuthorizationType()))
{
+ if (StringUtils.isBlank(basicAuthParameters.getUsername()) ||
StringUtils.isBlank(basicAuthParameters.getPassword())) {
+ throw new
EventBridgeException(EventBridgeErrorCode.BasicRequiredParameterIsEmpty);
+ }
+ String username = basicAuthParameters.getUsername();
+ String password = basicAuthParameters.getPassword();
+ if (username.length() >
EventBridgeConstants.MAX_LENGTH_CONSTANT || username.length() <
EventBridgeConstants.MIN_LENGTH_CONSTANT) {
+ throw new
EventBridgeException(EventBridgeErrorCode.BasicUserNameLengthExceed);
+ }
+ if (password.length() >
EventBridgeConstants.MAX_LENGTH_CONSTANT || password.length() <
EventBridgeConstants.MIN_LENGTH_CONSTANT) {
+ throw new
EventBridgeException(EventBridgeErrorCode.BasicPassWordLengthExceed);
+ }
+ }
+ ApiKeyAuthParameters apiKeyAuthParameters =
authParameters.getApiKeyAuthParameters();
+ if (apiKeyAuthParameters != null &&
AuthorizationTypeEnum.API_KEY_AUTH.getType().equals(authParameters.getAuthorizationType()))
{
+ if (StringUtils.isBlank(apiKeyAuthParameters.getApiKeyName())
|| StringUtils.isBlank(apiKeyAuthParameters.getApiKeyValue())) {
+ throw new
EventBridgeException(EventBridgeErrorCode.ApiKeyRequiredParameterIsEmpty);
+ }
+ String apiKeyName = apiKeyAuthParameters.getApiKeyName();
+ String apiKeyValue = apiKeyAuthParameters.getApiKeyValue();
+ if (apiKeyName.length() >
EventBridgeConstants.MAX_LENGTH_CONSTANT || apiKeyName.length() <
EventBridgeConstants.MIN_LENGTH_CONSTANT) {
+ throw new
EventBridgeException(EventBridgeErrorCode.ApiKeyNameLengthExceed);
+ }
+ if (apiKeyValue.length() >
EventBridgeConstants.MAX_LENGTH_CONSTANT || apiKeyValue.length() <
EventBridgeConstants.MIN_LENGTH_CONSTANT) {
+ throw new
EventBridgeException(EventBridgeErrorCode.ApiKeyValueLengthExceed);
+ }
+ }
+ OAuthParameters oauthParameters =
authParameters.getOauthParameters();
+ if (oauthParameters != null &&
AuthorizationTypeEnum.OAUTH_AUTH.getType().equals(authParameters.getAuthorizationType()))
{
+ if
(StringUtils.isBlank(oauthParameters.getAuthorizationEndpoint()) ||
StringUtils.isBlank(oauthParameters.getHttpMethod())) {
+ throw new
EventBridgeException(EventBridgeErrorCode.OAuthRequiredParameterIsEmpty);
+ }
+ if (oauthParameters.getAuthorizationEndpoint().length() >
EventBridgeConstants.MAX_LENGTH_CONSTANT ||
oauthParameters.getAuthorizationEndpoint().length() <
EventBridgeConstants.MIN_LENGTH_CONSTANT) {
+ throw new
EventBridgeException(EventBridgeErrorCode.AuthorizationEndpointLengthExceed);
+ }
+ if (oauthParameters.getClientParameters() != null) {
+ OAuthParameters.ClientParameters clientParameters =
oauthParameters.getClientParameters();
+ if (StringUtils.isNotBlank(clientParameters.getClientID())
+ && (clientParameters.getClientID().length() >
EventBridgeConstants.MAX_LENGTH_CONSTANT
+ || clientParameters.getClientID().length() <
EventBridgeConstants.MIN_LENGTH_CONSTANT)) {
+ throw new
EventBridgeException(EventBridgeErrorCode.ClientIDLengthExceed);
+ }
+ if
(StringUtils.isNotBlank(clientParameters.getClientSecret())
+ && (clientParameters.getClientSecret().length() >
EventBridgeConstants.MAX_LENGTH_CONSTANT
+ || clientParameters.getClientSecret().length() <
EventBridgeConstants.MIN_LENGTH_CONSTANT)) {
+ throw new
EventBridgeException(EventBridgeErrorCode.ClientSecretLengthExceed);
+ }
+ }
+ }
+ }
+ }
+
@Transactional(rollbackFor = Exception.class, propagation =
Propagation.REQUIRED)
public void deleteConnection(String accountId, String connectionName) {
if (CollectionUtils.isEmpty(checkConnection(accountId,
connectionName))) {
@@ -110,8 +167,9 @@ public class ConnectionService extends
AbstractResourceService {
if (CollectionUtils.isEmpty(checkConnection(accountId,
connectionDTO.getConnectionName()))) {
throw new
EventBridgeException(EventBridgeErrorCode.ConnectionNotExist,
connectionDTO.getConnectionName());
}
-
checkNetworkType(connectionDTO.getNetworkParameters().getNetworkType());
+ checkNetworkType(connectionDTO.getNetworkParameters());
if (connectionDTO.getAuthParameters() != null) {
+ checkAuthParameters(connectionDTO.getAuthParameters());
connectionDTO.setAuthParameters(updateSecretData(connectionDTO.getAuthParameters(),
accountId, connectionDTO.getConnectionName(),
connectionDTO.getConnectionName()));
}
List<ConnectionDTO> connection =
getConnection(connectionDTO.getAccountId(), connectionDTO.getConnectionName());
@@ -140,7 +198,7 @@ public class ConnectionService extends
AbstractResourceService {
return connectionRepository.getConnection(accountId, connectionName);
}
- public PaginationResult<List<ConnectionDTO>> listConnections(String
accountId, String connectionName, String nextToken, int maxResults) {
+ public PaginationResult<List<ConnectionDTO>> listConnections(String
accountId, String connectionName, String nextToken, Integer maxResults) {
List<ConnectionDTO> connectionDTOS =
connectionRepository.listConnections(accountId, connectionName, nextToken,
maxResults);
PaginationResult<List<ConnectionDTO>> result = new PaginationResult();
result.setData(connectionDTOS);
@@ -178,8 +236,10 @@ public class ConnectionService extends
AbstractResourceService {
private void saveClientByKms(String accountId, String connectionName,
OAuthParameters oauthParameters) {
OAuthParameters.ClientParameters clientParameters =
oauthParameters.getClientParameters();
-
clientParameters.setClientSecret(secretManagerAPI.createSecretName(accountId,
connectionName, new Gson().toJson(clientParameters)));
- oauthParameters.setClientParameters(clientParameters);
+ if (clientParameters != null) {
+
clientParameters.setClientSecret(secretManagerAPI.createSecretName(accountId,
connectionName, new Gson().toJson(clientParameters)));
+ oauthParameters.setClientParameters(clientParameters);
+ }
}
private AuthParameters updateSecretData(AuthParameters authParameters,
String accountId, String connectionName, String name) {
@@ -222,12 +282,17 @@ public class ConnectionService extends
AbstractResourceService {
private void updateClientByKms(String accountId, String connectionName,
OAuthParameters oauthParameters, ConnectionDTO connection) {
OAuthParameters.ClientParameters clientParameters =
oauthParameters.getClientParameters();
+ if (clientParameters == null) {
+ return;
+ }
String clientSecretSecretValue = null;
- if (connection.getAuthParameters() != null &&
connection.getAuthParameters().getOauthParameters() != null) {
+ if (connection.getAuthParameters() != null
+ && connection.getAuthParameters().getOauthParameters() != null
+ &&
connection.getAuthParameters().getOauthParameters().getClientParameters() !=
null) {
OAuthParameters.ClientParameters oldClientParameters =
connection.getAuthParameters().getOauthParameters().getClientParameters();
clientSecretSecretValue =
secretManagerAPI.updateSecretValue(oldClientParameters.getClientSecret(),
- accountId, connectionName,
connection.getAuthParameters().getOauthParameters().getClientParameters().getClientID(),
-
connection.getAuthParameters().getOauthParameters().getClientParameters().getClientSecret());
+ accountId, connectionName,
connection.getAuthParameters().getOauthParameters().getClientParameters().getClientID(),
+
connection.getAuthParameters().getOauthParameters().getClientParameters().getClientSecret());
} else {
clientSecretSecretValue =
secretManagerAPI.createSecretName(accountId, connectionName, new
Gson().toJson(clientParameters));
}
@@ -235,9 +300,13 @@ public class ConnectionService extends
AbstractResourceService {
oauthParameters.setClientParameters(clientParameters);
}
- private void checkNetworkType(String type) {
+ private void checkNetworkType(NetworkParameters networkParameters) {
+ if (networkParameters == null) {
+ throw new
EventBridgeException(EventBridgeErrorCode.NetworkParametersIsNull);
+ }
+ String type = networkParameters.getNetworkType();
if (StringUtils.isBlank(type)) {
- return;
+ throw new
EventBridgeException(EventBridgeErrorCode.NetworkTypeIsBlank);
}
boolean check = true;
for (NetworkTypeEnum networkTypeEnum : NetworkTypeEnum.values()) {
diff --git
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/parameter/NetworkParameters.java
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/parameter/NetworkParameters.java
index ed7ca0d..a761b56 100644
---
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/parameter/NetworkParameters.java
+++
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/parameter/NetworkParameters.java
@@ -18,7 +18,6 @@
package org.apache.rocketmq.eventbridge.domain.model.connection.parameter;
import com.google.gson.annotations.SerializedName;
-import javax.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@@ -28,7 +27,6 @@ import lombok.ToString;
@ToString
public class NetworkParameters {
- @NotBlank(message = "NetworkType is blank")
@SerializedName("NetworkType")
private String networkType;