diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/FieldName.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/FieldName.java index b1eb89d5ac..2da1e762ee 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/FieldName.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/FieldName.java @@ -3,6 +3,7 @@ package com.appsmith.external.constants; public class FieldName { public static final String CLIENT_SECRET = "clientSecret"; public static final String TOKEN = "token"; + public static final String TOKEN_RESPONSE = "tokenResponse"; public static final String PASSWORD = "password"; } diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/AuthenticationDTO.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/AuthenticationDTO.java index f7fd6d5825..5dbc750751 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/AuthenticationDTO.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/AuthenticationDTO.java @@ -29,7 +29,7 @@ public class AuthenticationDTO { // class and fails. @JsonIgnore - private Boolean isEncrypted; + private Boolean isEncrypted = false; @JsonIgnore public Map getEncryptionFields() { diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/OAuth2.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/OAuth2.java index 72eb6c9dd3..324f08a9f1 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/OAuth2.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/OAuth2.java @@ -30,6 +30,8 @@ public class OAuth2 extends AuthenticationDTO { Type authType; + Boolean isHeader; + String clientId; @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @@ -37,11 +39,19 @@ public class OAuth2 extends AuthenticationDTO { String accessTokenUrl; - String scope; + Set scope; + + String headerPrefix = "Bearer"; + + @JsonIgnore + Object tokenResponse; @JsonIgnore String token; + @JsonIgnore + Instant issuedAt; + @JsonIgnore Instant expiresAt; @@ -54,6 +64,9 @@ public class OAuth2 extends AuthenticationDTO { if (this.token != null) { map.put(FieldName.TOKEN, this.token); } + if (this.tokenResponse != null) { + map.put(FieldName.TOKEN_RESPONSE, String.valueOf(this.tokenResponse)); + } return map; } @@ -66,6 +79,9 @@ public class OAuth2 extends AuthenticationDTO { if (encryptedFields.containsKey(FieldName.TOKEN)) { this.token = encryptedFields.get(FieldName.TOKEN); } + if (encryptedFields.containsKey(FieldName.TOKEN_RESPONSE)) { + this.tokenResponse = encryptedFields.get(FieldName.TOKEN_RESPONSE); + } } } @@ -78,6 +94,9 @@ public class OAuth2 extends AuthenticationDTO { if (this.token == null || this.token.isEmpty()) { set.add(FieldName.TOKEN); } + if (this.tokenResponse == null || (String.valueOf(this.token)).isEmpty()) { + set.add(FieldName.TOKEN_RESPONSE); + } return set; } diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/UpdatableConnection.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/UpdatableConnection.java index fbe6ccd5f4..7c91149de7 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/UpdatableConnection.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/models/UpdatableConnection.java @@ -1,9 +1,5 @@ package com.appsmith.external.models; public interface UpdatableConnection { - void updateDatasource(DatasourceConfiguration datasourceConfiguration); - - default boolean isUpdated() { - return false; - } + public AuthenticationDTO getAuthenticationDTO(AuthenticationDTO authenticationDTO); } diff --git a/app/server/appsmith-plugins/restApiPlugin/pom.xml b/app/server/appsmith-plugins/restApiPlugin/pom.xml index 876b6fb0c7..b34dbf1947 100644 --- a/app/server/appsmith-plugins/restApiPlugin/pom.xml +++ b/app/server/appsmith-plugins/restApiPlugin/pom.xml @@ -103,6 +103,28 @@ test + + org.assertj + assertj-core + test + + + + + org.powermock + powermock-module-junit4 + 2.0.9 + test + + + + + org.powermock + powermock-api-mockito2 + 2.0.9 + test + +