From fd4cd6387465371b37f7ae6e7fc78f1124d8d5bb Mon Sep 17 00:00:00 2001 From: Puja Sharma Date: Thu, 7 Jul 2022 12:23:24 +0530 Subject: [PATCH 1/6] fix(jans-config-api): fixed swagger link --- jans-config-api/README.md | 2 +- jans-config-api/profiles/local/test.properties | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jans-config-api/README.md b/jans-config-api/README.md index 43e5c414957..a31ce1ef79d 100644 --- a/jans-config-api/README.md +++ b/jans-config-api/README.md @@ -17,5 +17,5 @@ Be aware that all the dependencies are copied into the `server/target/jans-confi The application can be deployed on web server like jetty and can be now runnable using `java -jar start.jar -Djans.base=etc/jans`. ## Documentation -Learn more in the [jans-config-api documentation](https://gluu.org/swagger-ui/?url=https://raw.githubusercontent.com/JanssenProject/jans-config-api/master/docs/jans-config-api-swagger.yaml). +Learn more in the [jans-config-api documentation](https://gluu.org/swagger-ui/?url=https://raw.githubusercontent.com/JanssenProject/jans/main/jans-config-api/docs/jans-config-api-swagger.yaml). diff --git a/jans-config-api/profiles/local/test.properties b/jans-config-api/profiles/local/test.properties index 3cab45e503c..4c6ce3c0cee 100644 --- a/jans-config-api/profiles/local/test.properties +++ b/jans-config-api/profiles/local/test.properties @@ -2,8 +2,8 @@ test.scopes=https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/config/acrs.write https://jans.io/oauth/config/attributes.readonly https://jans.io/oauth/config/attributes.write https://jans.io/oauth/config/attributes.delete https://jans.io/oauth/config/cache.readonly https://jans.io/oauth/config/cache.write https://jans.io/oauth/config/openid/clients.readonly https://jans.io/oauth/config/openid/clients.write https://jans.io/oauth/config/openid/clients.delete https://jans.io/oauth/jans-auth-server/config/properties.readonly https://jans.io/oauth/jans-auth-server/config/properties.write https://jans.io/oauth/config/smtp.readonly https://jans.io/oauth/config/smtp.write https://jans.io/oauth/config/smtp.delete https://jans.io/oauth/config/database/couchbase.readonly https://jans.io/oauth/config/database/couchbase.write https://jans.io/oauth/config/database/couchbase.delete https://jans.io/oauth/config/scripts.readonly https://jans.io/oauth/config/scripts.write https://jans.io/oauth/config/scripts.delete https://jans.io/oauth/config/fido2.readonly https://jans.io/oauth/config/fido2.write https://jans.io/oauth/config/jwks.readonly https://jans.io/oauth/config/jwks.write https://jans.io/oauth/config/database/ldap.readonly https://jans.io/oauth/config/database/ldap.write https://jans.io/oauth/config/database/ldap.delete https://jans.io/oauth/config/logging.readonly https://jans.io/oauth/config/logging.write https://jans.io/oauth/config/scopes.readonly https://jans.io/oauth/config/scopes.write https://jans.io/oauth/config/scopes.delete https://jans.io/oauth/config/uma/resources.readonly https://jans.io/oauth/config/uma/resources.write https://jans.io/oauth/config/uma/resources.delete https://jans.io/oauth/config/database/sql.readonly https://jans.io/oauth/config/database/sql.write https://jans.io/oauth/config/database/sql.delete https://jans.io/oauth/config/stats.readonly jans_stat https://jans.io/scim/users.read https://jans.io/scim/users.write https://jans.io/oauth/config/scim/users.read https://jans.io/oauth/config/scim/users.write https://jans.io/scim/config.readonly https://jans.io/scim/config.write https://jans.io/oauth/config/organization.readonly https://jans.io/oauth/config/organization.write https://jans.io/oauth/config/user.readonly https://jans.io/oauth/config/user.write https://jans.io/oauth/config/user.delete # jans.server -token.endpoint=https://jans.server2/jans-auth/restv1/token +token.endpoint=https://jans.server1/jans-auth/restv1/token token.grant.type=client_credentials -test.client.id=1800.1e34098b-b661-4aaf-8bc3-bfcb1880b90d -test.client.secret=8BBf3Zb5XR6Y -test.issuer=https://jans.server2 \ No newline at end of file +test.client.id=1800.fbeaf31b-16dc-405f-97f6-001eeb622f18 +test.client.secret=6OB4BxtxVd6I +test.issuer=https://jans.server1 \ No newline at end of file From 681c346c2cef7ccfc613752c87dea04f2aaae7ec Mon Sep 17 00:00:00 2001 From: Puja Sharma Date: Wed, 13 Jul 2022 22:44:54 +0530 Subject: [PATCH 2/6] fix(jans-config-api): swagger spec change to add missing attributes for Client --- .../docs/jans-config-api-swagger.yaml | 65 ++++++++++++++++++- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/jans-config-api/docs/jans-config-api-swagger.yaml b/jans-config-api/docs/jans-config-api-swagger.yaml index daddf191bb6..2af34c524c1 100644 --- a/jans-config-api/docs/jans-config-api-swagger.yaml +++ b/jans-config-api/docs/jans-config-api-swagger.yaml @@ -1040,6 +1040,10 @@ paths: - '- ciba_end_user_notification' - '- persistence_extension' - '- idp' + - 'revoke_token' + - 'discovery' + - 'update_token' + - 'config_api_auth' name: type in: path description: Script type. @@ -4846,10 +4850,12 @@ components: - USER - WHITEPAGES usageType: - type: object + type: array description: GluuAttributeUsageType items: type: string + enum: + - openid claimName: type: string seeAlso: @@ -5010,49 +5016,102 @@ components: type: object properties: tlsClientAuthSubjectDn: + description: String representation of the expected subject distinguished name of the certificate, which the OAuth client will use in mutual TLS authentication. type: string runIntrospectionScriptBeforeAccessTokenAsJwtCreationAndIncludeClaims: - description: Run Introspection Script Before Access Token as Jwt Creation and Include Claims. Default value is false. + description: boolean property which indicates whether to run introspection script and then include claims from result into access_token as JWT. type: boolean keepClientAuthorizationAfterExpiration: - description: Keep Client Authorization After Expiration. + description: boolean property which indicates whether to keep client authorization after expiration. type: boolean allowSpontaneousScopes: + description: boolean, whether to allow spontaneous scopes for client. type: boolean spontaneousScopes: + description: List of spontaneous scope regular expression. type: array items: type: string spontaneousScopeScriptDns: + description: List of spontaneous scope scripts. + type: array + items: + type: string + updateTokenScriptDns: + description: List of update token scripts. type: array items: type: string backchannelLogoutUri: + description: List of RP URL that will cause the RP to log itself out when sent a Logout Token by the OP. type: array items: type: string backchannelLogoutSessionRequired: + description: Boolean value specifying whether the RP requires that a sid (session ID) Claim be included in the Logout Token to identify the RP session with the OP when true. Default value is false. type: boolean additionalAudience: + description: List of additional client audience. type: array items: type: string postAuthnScripts: + description: List of post authentication scripts. type: array items: type: string consentGatheringScripts: + description: List of consent gathering scripts. type: array items: type: string introspectionScripts: + description: List of introspection scripts. type: array items: type: string rptClaimsScripts: + description: List of Requesting Party Token (RPT) claims scripts. + type: array + items: + type: string + ropcScripts: + description: List of Resource Owner Password Credentials (ROPC) scripts. + type: array + items: + type: string + parLifetime: + description: represents the lifetime of Pushed Authorisation Request (PAR). + type: integer + format: int64 + requirePar: + description: boolean value to indicate of Pushed Authorisation Request(PAR)is required. + type: boolean + authorizationSignedResponseAlg: + description: JWS alg algorithm JWA required for signing authorization responses. + type: string + authorizationEncryptedResponseAlg: + description: JWE alg algorithm JWA required for encrypting authorization responses. + type: string + authorizationEncryptedResponseEnc: + description: JWE enc algorithm JWA required for encrypting auhtorization responses. + type: string + publicSubjectIdentifierAttribute: + description: property contains the unique user identifier. + type: string + redirectUrisRegex: + description: If set, redirectUri must match to this regexp + type: string + authorizedAcrValues: + description: List of thentication Context Class Reference (ACR) that must exist. type: array items: type: string + defaultPromptLogin: + description: sets prompt=login to the authorization request, which causes the authorization server to force the user to sign in again before it will show the authorization prompt. + type: boolean + + Client: title: Client object description: Client. From 96e9aa8f3ffad072fd2a79a051bd009aff2786b4 Mon Sep 17 00:00:00 2001 From: Puja Sharma Date: Wed, 13 Jul 2022 22:53:36 +0530 Subject: [PATCH 3/6] fix(jans-config-api): swagger spec change to add missing attributes for Client --- jans-config-api/docs/jans-config-api-swagger.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jans-config-api/docs/jans-config-api-swagger.yaml b/jans-config-api/docs/jans-config-api-swagger.yaml index 2af34c524c1..38b9094d3e8 100644 --- a/jans-config-api/docs/jans-config-api-swagger.yaml +++ b/jans-config-api/docs/jans-config-api-swagger.yaml @@ -5097,7 +5097,7 @@ components: description: JWE enc algorithm JWA required for encrypting auhtorization responses. type: string publicSubjectIdentifierAttribute: - description: property contains the unique user identifier. + description: custom subject identifier attribute. type: string redirectUrisRegex: description: If set, redirectUri must match to this regexp From e9fd2e06d498841a7775c7fbf89f3d48a73281a9 Mon Sep 17 00:00:00 2001 From: Puja Sharma Date: Thu, 14 Jul 2022 16:15:35 +0530 Subject: [PATCH 4/6] feat9jans-config-api): fixed GluuAtrribute usageType enum in spec --- jans-config-api/docs/jans-config-api-swagger.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jans-config-api/docs/jans-config-api-swagger.yaml b/jans-config-api/docs/jans-config-api-swagger.yaml index 38b9094d3e8..c6cb944d075 100644 --- a/jans-config-api/docs/jans-config-api-swagger.yaml +++ b/jans-config-api/docs/jans-config-api-swagger.yaml @@ -4855,7 +4855,7 @@ components: items: type: string enum: - - openid + - OPENID claimName: type: string seeAlso: From fbdb295691b7833f6b2fdc21314567299c571210 Mon Sep 17 00:00:00 2001 From: Puja Sharma Date: Thu, 14 Jul 2022 17:28:23 +0530 Subject: [PATCH 5/6] feat9jans-config-api): jansStatus attribute enum value rectification in spec for User management --- jans-config-api/docs/jans-config-api-swagger.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jans-config-api/docs/jans-config-api-swagger.yaml b/jans-config-api/docs/jans-config-api-swagger.yaml index c6cb944d075..c1122a9e22a 100644 --- a/jans-config-api/docs/jans-config-api-swagger.yaml +++ b/jans-config-api/docs/jans-config-api-swagger.yaml @@ -6892,10 +6892,10 @@ components: type: string description: User status enum: - - ACTIVE - - INACTIVE - - EXPIRED - - REGISTER + - active + - inactive + - expired + - register userId: description: A domain issued and managed identifier for the user. type: string From 3315143397f538b969328ce6a7757f9a4ebdd478 Mon Sep 17 00:00:00 2001 From: Puja Sharma Date: Thu, 14 Jul 2022 21:31:45 +0530 Subject: [PATCH 6/6] feat(jans-config-api): implemented fetch custom script based on script name issue#1754 --- .../docs/jans-config-api-swagger.yaml | 29 +++++++++ .../profiles/local/test.properties | 4 +- .../resource/auth/CustomScriptResource.java | 61 +++++++++++++------ .../scripts/custom/generic/custom.feature | 25 +++++++- .../feature/openid/clients/client.json | 1 + .../feature/openid/clients/clients.feature | 4 +- 6 files changed, 98 insertions(+), 26 deletions(-) diff --git a/jans-config-api/docs/jans-config-api-swagger.yaml b/jans-config-api/docs/jans-config-api-swagger.yaml index c1122a9e22a..003f1623955 100644 --- a/jans-config-api/docs/jans-config-api-swagger.yaml +++ b/jans-config-api/docs/jans-config-api-swagger.yaml @@ -1016,6 +1016,35 @@ paths: $ref: '#/components/responses/InternalServerError' security: - oauth2: [https://jans.io/oauth/config/scripts.write] + + /jans-config-api/api/v1/config/scripts/name/{name}: + parameters: + - name: name + in: path + required: true + description: Script name. + schema: + type: string + get: + summary: Fetch custom script by name. + description: Fetch custom script by name. + operationId: get-custom-script-by-name + tags: + - Custom Scripts + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/CustomScript' + '401': + $ref: '#/components/responses/Unauthorized' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauth2: [https://jans.io/oauth/config/scripts.readonly] + /jans-config-api/api/v1/config/scripts/type/{type}: parameters: - schema: diff --git a/jans-config-api/profiles/local/test.properties b/jans-config-api/profiles/local/test.properties index 4c6ce3c0cee..2d54c91a81e 100644 --- a/jans-config-api/profiles/local/test.properties +++ b/jans-config-api/profiles/local/test.properties @@ -4,6 +4,6 @@ test.scopes=https://jans.io/oauth/config/acrs.readonly https://jans.io/oauth/con # jans.server token.endpoint=https://jans.server1/jans-auth/restv1/token token.grant.type=client_credentials -test.client.id=1800.fbeaf31b-16dc-405f-97f6-001eeb622f18 -test.client.secret=6OB4BxtxVd6I +test.client.id=1800.d2d3ab98-e018-4a75-bc1d-15b5ac8cb455 +test.client.secret=oGjYGFjhBr97 test.issuer=https://jans.server1 \ No newline at end of file diff --git a/jans-config-api/server/src/main/java/io/jans/configapi/rest/resource/auth/CustomScriptResource.java b/jans-config-api/server/src/main/java/io/jans/configapi/rest/resource/auth/CustomScriptResource.java index c0f0f30654d..94eeb5ccf3e 100644 --- a/jans-config-api/server/src/main/java/io/jans/configapi/rest/resource/auth/CustomScriptResource.java +++ b/jans-config-api/server/src/main/java/io/jans/configapi/rest/resource/auth/CustomScriptResource.java @@ -15,7 +15,6 @@ import io.jans.model.custom.script.model.CustomScript; import io.jans.service.custom.CustomScriptService; import io.jans.util.StringHelper; -import org.slf4j.Logger; import com.github.fge.jsonpatch.JsonPatchException; @@ -39,9 +38,6 @@ public class CustomScriptResource extends ConfigBaseResource { private static final String CUSTOM_SCRIPT = "custom script"; private static final String PATH_SEPARATOR = "/"; - @Inject - Logger log; - @Inject CustomScriptService customScriptService; @@ -55,9 +51,31 @@ public class CustomScriptResource extends ConfigBaseResource { @ProtectedApi(scopes = { ApiAccessConstants.SCRIPTS_READ_ACCESS }) public Response getAllCustomScripts() { List customScripts = customScriptService.findAllCustomScripts(null); - log.debug("Custom Scripts:{}", customScripts); + logger.debug("Custom Scripts:{}", customScripts); return Response.ok(customScripts).build(); } + + /*** + * Method to fetch a custom script based on name + * + * @param name - name of custom script + * @throws NotAuthorizedException + */ + @GET + @Path(PATH_SEPARATOR + ApiConstants.NAME + ApiConstants.NAME_PARAM_PATH) + @ProtectedApi(scopes = { ApiAccessConstants.SCRIPTS_READ_ACCESS }) + public Response getCustomScriptByName(@PathParam(ApiConstants.NAME) @NotNull String name) { + + if (logger.isDebugEnabled()) { + logger.debug("Custom Script to be fetched based on type - name:{} ", escapeLog(name)); + } + + CustomScript customScript = customScriptService.getScriptByDisplayName(name); + checkResourceNotNull(customScript, CUSTOM_SCRIPT); + + logger.debug("Custom Script Fetched based on name:{}, customScript:{}", name, customScript); + return Response.ok(customScript).build(); + } /*** * Method to fetch a custom script by type @@ -72,9 +90,14 @@ public Response getAllCustomScripts() { public Response getCustomScriptsByTypePattern(@PathParam(ApiConstants.TYPE) @NotNull String type, @DefaultValue("") @QueryParam(value = ApiConstants.PATTERN) String pattern, @DefaultValue(DEFAULT_LIST_SIZE) @QueryParam(value = ApiConstants.LIMIT) int limit) { + + if (logger.isDebugEnabled()) { + logger.debug("Custom Script to be fetched based on type - type:{} , pattern:{}, limit:{} ", escapeLog(type), escapeLog(pattern), escapeLog(limit)); + } + List customScripts = this.customScriptService.findScriptByPatternAndType(pattern, CustomScriptType.getByValue(type.toLowerCase()), limit); - log.debug("Custom Scripts fetched :{}", customScripts); + logger.debug("Custom Scripts fetched :{}", customScripts); if (customScripts != null && !customScripts.isEmpty()) return Response.ok(customScripts).build(); else @@ -92,8 +115,8 @@ public Response getCustomScriptsByTypePattern(@PathParam(ApiConstants.TYPE) @Not @Path(PATH_SEPARATOR + ApiConstants.INUM + PATH_SEPARATOR + ApiConstants.INUM_PATH) @ProtectedApi(scopes = { ApiAccessConstants.SCRIPTS_READ_ACCESS }) public Response getCustomScriptByInum(@PathParam(ApiConstants.INUM) @NotNull String inum) { - if (log.isDebugEnabled()) { - log.debug("Custom Script to be fetched - inum:{} ", escapeLog(inum)); + if (logger.isDebugEnabled()) { + logger.debug("Custom Script to be fetched - inum:{} ", escapeLog(inum)); } CustomScript script = null; try { @@ -104,7 +127,7 @@ public Response getCustomScriptByInum(@PathParam(ApiConstants.INUM) @NotNull Str return Response.status(Response.Status.NOT_FOUND).build(); } } - log.debug("Custom Script fetched by inum :{}", script); + logger.debug("Custom Script fetched by inum :{}", script); return Response.ok(script).build(); } @@ -118,7 +141,7 @@ public Response getCustomScriptByInum(@PathParam(ApiConstants.INUM) @NotNull Str @POST @ProtectedApi(scopes = { ApiAccessConstants.SCRIPTS_WRITE_ACCESS }) public Response createScript(@Valid CustomScript customScript) { - log.debug("Custom Script to create - customScript:{}", customScript); + logger.debug("Custom Script to create - customScript:{}", customScript); Objects.requireNonNull(customScript, "Attempt to create null custom script"); String inum = customScript.getInum(); if (StringHelper.isEmpty(inum)) { @@ -127,7 +150,7 @@ public Response createScript(@Valid CustomScript customScript) { customScript.setDn(customScriptService.buildDn(inum)); customScript.setInum(inum); customScriptService.add(customScript); - log.debug("Custom Script added {}", customScript); + logger.debug("Custom Script added {}", customScript); return Response.status(Response.Status.CREATED).entity(customScript).build(); } @@ -142,11 +165,11 @@ public Response createScript(@Valid CustomScript customScript) { @PUT @ProtectedApi(scopes = { ApiAccessConstants.SCRIPTS_WRITE_ACCESS }) public Response updateScript(@Valid @NotNull CustomScript customScript) { - log.debug("Custom Script to update - customScript:{}", customScript); + logger.debug("Custom Script to update - customScript:{}", customScript); CustomScript existingScript = customScriptService.getScriptByInum(customScript.getInum()); checkResourceNotNull(existingScript, CUSTOM_SCRIPT); customScript.setInum(existingScript.getInum()); - log.debug("Custom Script updated {}", customScript); + logger.debug("Custom Script updated {}", customScript); customScriptService.update(customScript); return Response.ok(customScript).build(); } @@ -163,14 +186,14 @@ public Response updateScript(@Valid @NotNull CustomScript customScript) { @ProtectedApi(scopes = { ApiAccessConstants.SCRIPTS_DELETE_ACCESS }) public Response deleteScript(@PathParam(ApiConstants.INUM) @NotNull String inum) { try { - if (log.isDebugEnabled()) { - log.debug("Custom Script Resource to delete - inum:{}", escapeLog(inum)); + if (logger.isDebugEnabled()) { + logger.debug("Custom Script Resource to delete - inum:{}", escapeLog(inum)); } CustomScript existingScript = customScriptService.getScriptByInum(inum); customScriptService.remove(existingScript); return Response.noContent().build(); } catch (Exception ex) { - log.info("Error deleting script by inum " + inum, ex); + logger.info("Error deleting script by inum " + inum, ex); throw new NotFoundException(getNotFoundError(CUSTOM_SCRIPT)); } } @@ -193,8 +216,8 @@ public Response deleteScript(@PathParam(ApiConstants.INUM) @NotNull String inum) @Path(ApiConstants.INUM_PATH) public Response patchAtribute(@PathParam(ApiConstants.INUM) @NotNull String inum, @NotNull String pathString) throws JsonPatchException, IOException { - if (log.isDebugEnabled()) { - log.debug("Custom Script Resource to patch - inum:{} , pathString:{}", escapeLog(inum), + if (logger.isDebugEnabled()) { + logger.debug("Custom Script Resource to patch - inum:{} , pathString:{}", escapeLog(inum), escapeLog(pathString)); } @@ -204,7 +227,7 @@ public Response patchAtribute(@PathParam(ApiConstants.INUM) @NotNull String inum customScriptService.update(existingScript); existingScript = customScriptService.getScriptByInum(inum); - log.debug(" Custom Script Resource after patch - existingScript:{}", existingScript); + logger.debug(" Custom Script Resource after patch - existingScript:{}", existingScript); return Response.ok(existingScript).build(); } diff --git a/jans-config-api/server/src/test/resources/feature/config/scripts/custom/generic/custom.feature b/jans-config-api/server/src/test/resources/feature/config/scripts/custom/generic/custom.feature index d3ed3e806e7..6ed94669494 100644 --- a/jans-config-api/server/src/test/resources/feature/config/scripts/custom/generic/custom.feature +++ b/jans-config-api/server/src/test/resources/feature/config/scripts/custom/generic/custom.feature @@ -21,9 +21,28 @@ Feature: Verify Custom Script configuration endpoint And print response And assert response.length != null - + @scripts-get-custom-script-by-name + Scenario: Fetch all custom scripts by name + Given url mainUrl + And header Authorization = 'Bearer ' + accessToken + When method GET + Then status 200 + And print response + And assert response.length != null + And print response[0] + And print 'Script inum = '+response[0].name + And assert response[0].name != null + And print 'Script Name = '+response[0].name + And print 'Fetching script by name' + '-' +response[0].name + Given url mainUrl + '/name' + '/'+response[0].name + And header Authorization = 'Bearer ' + accessToken + When method GET + Then status 200 + And print response + And assert response.length != null + @scripts-get-person-custom-scripts - Scenario: Fetch all person custom scripts without bearer token + Scenario: Fetch all person custom script Given url mainUrl + '/type' And path 'person_authentication' And header Authorization = 'Bearer ' + accessToken @@ -34,7 +53,7 @@ Feature: Verify Custom Script configuration endpoint @scripts-get-introspection-custom-scripts - Scenario: Fetch all introspection scripts without bearer token + Scenario: Fetch all introspection scripts Given url mainUrl + '/type' And path 'introspection' And header Authorization = 'Bearer ' + accessToken diff --git a/jans-config-api/server/src/test/resources/feature/openid/clients/client.json b/jans-config-api/server/src/test/resources/feature/openid/clients/client.json index 8b726bae869..73c34f2547e 100644 --- a/jans-config-api/server/src/test/resources/feature/openid/clients/client.json +++ b/jans-config-api/server/src/test/resources/feature/openid/clients/client.json @@ -38,6 +38,7 @@ "postLogoutRedirectUris": [ ], "redirectUris": [ + "http://localhost:8080" ], "scopes": [ ], diff --git a/jans-config-api/server/src/test/resources/feature/openid/clients/clients.feature b/jans-config-api/server/src/test/resources/feature/openid/clients/clients.feature index c0a251fd175..e37b54d7e81 100644 --- a/jans-config-api/server/src/test/resources/feature/openid/clients/clients.feature +++ b/jans-config-api/server/src/test/resources/feature/openid/clients/clients.feature @@ -73,7 +73,7 @@ When method GET Then status 200 And print response - +@ignore @CreateUpdateDelete Scenario: Create new OpenId Connect Client Given url mainUrl @@ -105,7 +105,7 @@ When method GET Then status 404 And print response - +@ignore Scenario: Patch openid connect client Given url mainUrl And header Authorization = 'Bearer ' + accessToken