diff --git a/.env.example b/.env.example index 4989e6f..1f77004 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,5 @@ CORBADO_API_SECRET=corbado1_xxx CORBADO_PROJECT_ID=pro-xxx +CORBADO_BACKEND_API= +CORBADO_FRONTEND_API= + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2337c46..cd52cbe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -101,6 +101,7 @@ jobs: CORBADO_API_SECRET: ${{ secrets.CORBADO_API_SECRET }} CORBADO_PROJECT_ID: ${{ secrets.CORBADO_PROJECT_ID }} CORBADO_BACKEND_API: ${{ vars.CORBADO_BACKEND_API }} + CORBADO_FRONTEND_API: ${{ vars.CORBADO_FRONTEND_API }} run: mvn --batch-mode --update-snapshots verify -DskipInstall deploy: diff --git a/src/main/java/com/corbado/sdk/Config.java b/src/main/java/com/corbado/sdk/Config.java index ba279e8..2182485 100644 --- a/src/main/java/com/corbado/sdk/Config.java +++ b/src/main/java/com/corbado/sdk/Config.java @@ -2,7 +2,9 @@ import java.net.MalformedURLException; import java.net.URL; + import org.apache.commons.lang3.StringUtils; + import lombok.Builder; import lombok.Getter; import lombok.NonNull; @@ -40,8 +42,8 @@ public class Config { /** The api secret with custom setter. Must be provided. */ @NonNull @Getter private String apiSecret; - /** The backend api with custom setter. Default value: "https://backendapi.cloud.corbado.io/v2" */ - @Getter @Builder.Default private String backendApi = "https://backendapi.cloud.corbado.io/v2"; + /** The backend api with custom setter. */ + @Getter private String backendApi; /** The short session cookie name. Default value: "cbo_short_session" */ @Getter @Setter @Builder.Default private String shortSessionCookieName = "cbo_short_session"; @@ -61,38 +63,6 @@ public class Config { /** The cname. Replaces issuer field if present. */ @Getter @Setter private String cname; - // Constructors - /** - * Instantiates a new config. - * - * @param projectId the project id - * @param apiSecret the api secret - */ - public Config(@NonNull final String projectId, @NonNull final String apiSecret) { - - setProjectId(projectId); // set and validate - setApiSecret(apiSecret); - - // default values - setFrontendApi(projectId); - setIssuer(this.frontendApi); - } - - /** - * Instantiates a new config. - * - * @param projectId the project id - * @param apiSecret the api secret - * @param backendApi the backend api - */ - public Config( - @NonNull final String projectId, - @NonNull final String apiSecret, - @NonNull final String backendApi) { - this(projectId, apiSecret); - setBackendApi(backendApi); - } - // Custom Getters and Setters /** * Sets the api secret. @@ -136,8 +106,6 @@ public void setBackendApi(String backendApi) { */ public void setFrontendApi(String frontendApi) { frontendApi = StringUtils.trim(frontendApi); - frontendApi = StringUtils.prependIfMissing(frontendApi, HTTPS); - frontendApi = StringUtils.appendIfMissing(frontendApi, ".frontendapi.corbado.io"); try { new URL(frontendApi); // Validate URL syntax @@ -178,10 +146,10 @@ public void setProjectId(@NonNull String projectId) { public Config( @NonNull final String projectId, @NonNull final String apiSecret, - final String backendApi, + @NonNull final String backendApi, final String shortSessionCookieName, final String issuer, - final String frontendApi, + @NonNull final String frontendApi, final Integer shortSessionLength, final boolean cacheKeys, String cname) { @@ -190,11 +158,8 @@ public Config( setApiSecret(apiSecret); setBackendApi(backendApi); setShortSessionCookieName(shortSessionCookieName); - if (StringUtils.isEmpty(frontendApi)) { - setFrontendApi(projectId); - } else { - setFrontendApi(frontendApi); - } + setFrontendApi(frontendApi); + setShortSessionLength(shortSessionLength); setCacheKeys(cacheKeys); setCname(cname); diff --git a/src/test/java/com/corbado/util/TestUtils.java b/src/test/java/com/corbado/util/TestUtils.java index a897091..7d01cee 100644 --- a/src/test/java/com/corbado/util/TestUtils.java +++ b/src/test/java/com/corbado/util/TestUtils.java @@ -26,6 +26,9 @@ public class TestUtils { /** The Constant CORBADO_BACKEND_API. */ public static final String CORBADO_BACKEND_API = "CORBADO_BACKEND_API"; + /** The Constant CORBADO_FRONTEND_API. */ + public static final String CORBADO_FRONTEND_API = "CORBADO_FRONTEND_API"; + /** The Constant CANNOT_BE_BLANK_MESSAGE. */ public static final String CANNOT_BE_BLANK_MESSAGE = "cannot be blank"; @@ -120,13 +123,19 @@ public static CorbadoSdk instantiateSDK() throws StandardException { if (StringUtils.isEmpty(backendApi)) { backendApi = dotenv.get(CORBADO_BACKEND_API); } - Config config = null; - if (StringUtils.isEmpty(backendApi)) { - config = Config.builder().apiSecret(apiSecret).projectId(projectId).build(); - } else { - config = - Config.builder().apiSecret(apiSecret).projectId(projectId).backendApi(backendApi).build(); + + // Check for CORBADO_BACKEND_API + String frontendApi = System.getenv(CORBADO_FRONTEND_API); + if (StringUtils.isEmpty(frontendApi)) { + frontendApi = dotenv.get(CORBADO_FRONTEND_API); } + final Config config = + Config.builder() + .apiSecret(apiSecret) + .projectId(projectId) + .backendApi(backendApi) + .frontendApi(frontendApi) + .build(); return new CorbadoSdk(config); }