diff --git a/packages/server/src/api/controllers/oauth2.ts b/packages/server/src/api/controllers/oauth2.ts index ff741b0065..dc95cbda3d 100644 --- a/packages/server/src/api/controllers/oauth2.ts +++ b/packages/server/src/api/controllers/oauth2.ts @@ -88,6 +88,15 @@ export async function validate( clientSecret: body.clientSecret, } + if (config.clientSecret === PASSWORD_REPLACEMENT && body.id) { + const existingConfig = await sdk.oauth2.get(body.id) + if (!existingConfig) { + ctx.throw(`OAuth2 config with id '${body.id}' not found.`, 404) + } + + config.clientSecret = existingConfig.clientSecret + } + const validation = await sdk.oauth2.validateConfig(config) ctx.status = 201 ctx.body = validation diff --git a/packages/server/src/api/routes/oauth2.ts b/packages/server/src/api/routes/oauth2.ts index 5f005fc408..a0e68eff84 100644 --- a/packages/server/src/api/routes/oauth2.ts +++ b/packages/server/src/api/routes/oauth2.ts @@ -39,7 +39,7 @@ router.delete( controller.remove ) router.post( - "/api/oauth2/:id/validate", + "/api/oauth2/validate", authorized(PermissionType.BUILDER), controller.validate ) diff --git a/packages/types/src/api/web/app/oauth2.ts b/packages/types/src/api/web/app/oauth2.ts index 9c915007b9..9c0e431b7e 100644 --- a/packages/types/src/api/web/app/oauth2.ts +++ b/packages/types/src/api/web/app/oauth2.ts @@ -22,6 +22,7 @@ export interface UpsertOAuth2ConfigResponse { } export interface ValidateConfigRequest { + id?: string url: string clientId: string clientSecret: string